home *** CD-ROM | disk | FTP | other *** search
Text File | 2006-08-22 | 138.2 KB | 3,056 lines |
-
- -------------------------------------------------------------------------------
- Top - Requirements - Introduction - Installation - Setup script -
- Configuration
- Transformations - FAQ - Developers - Credits - Translators
- -------------------------------------------------------------------------------
-
- phpMyAdmin 2.8.2.4 Documentation
-
- * SourceForge phpMyAdmin project page [ http://www.phpmyadmin.net/ ]
- * Local documents:
- + Version history: ChangeLog
- + General notes: README
- + License: LICENSE
- * Documentation version: $Id: Documentation.html,v 2.205.2.21.2.5 2006/08/22
- 17:00:29 lem9 Exp $
-
-
- Requirements
-
- * PHP
- + You need PHP 4.1.0 or newer, with session support (*)
- + You need GD2 support in PHP to display inline thumbnails of JPEGs
- ("image/jpeg: inline") with their original aspect ratio
- + You need PHP 4.3.0 or newer to use the "text/plain: external"
- MIME-based transformation
- * MySQL 3.23.32 or newer (details);
- * Not really a requirement but a strong suggestion: if you are using the
- "cookie" authentication method, having the mcrypt PHP extension on your web
- server accelerates not only the login phase but every other action that you
- do in phpMyAdmin.
- * Web browser with cookies enabled.
-
-
- Introduction
-
- phpMyAdmin can manage a whole MySQL server (needs a super-user) as well as a
- single database. To accomplish the latter you'll need a properly set up MySQL
- user who can read/write only the desired database. It's up to you to look up
- the appropriate part in the MySQL manual.
- Currently phpMyAdmin can:
-
- * easily browse through databases and tables
- * create, copy, rename, alter and drop databases
- * create, copy, rename, alter and drop tables
- * do table maintenance
- * add, edit and drop fields
- * execute any SQL-statement, even multiple queries
- * create, alter and drop indexes
- * load text files into tables
- * create (*) and read dumps of tables or databases
- * export (*) data to SQL, CSV, XML, Word, Excel, PDF and Latex formats
- * administer multiple servers
- * manage MySQL users and privileges
- * check server settings and runtime information with configuration hints
- * check referential integrity in MyISAM tables
- * using Query-by-example (QBE), create complex queries automatically
- connecting required tables
- * create PDF graphics of your Database layout
- * search globally in a database or a subset of it
- * transform stored data into any format using a set of predefined functions,
- like displaying BLOB-data as image or download-link
- * support InnoDB tables and foreign keys (see FAQ 3.6)
- * support mysqli, the improved MySQL extension (see FAQ 1.17)
- * communicate in 50 different languages
-
- A word about users:
-
- Many people have difficulty understanding the concept of user management with
- regards to phpMyAdmin. When a user logs in to phpMyAdmin, that username and
- password are passed directly to MySQL. phpMyAdmin does no account management on
- its own (other than allowing one to manipulate the MySQL user account
- information); all users must be valid MySQL users.
-
- ^1) phpMyAdmin can compress (Zip, GZip -RFC 1952- or Bzip2 formats) dumps and
- CSV exports if you use PHP with Zlib support (--with-zlib) and/or Bzip2 support
- (--with-bz2). Proper support may also need changes in php.ini.
-
-
- Installation
-
- NOTE: phpMyAdmin does not apply any special security methods to the MySQL
- database server. It is still the system administrator's job to grant
- permissions on the MySQL databases properly. phpMyAdmin's "Privileges" page can
- be used for this.
-
- Warning for Mac users:if you are on a MacOS version before OS X, StuffIt
- unstuffs with Mac formats.
- So you'll have to resave as in BBEdit to Unix style ALL phpMyAdmin scripts
- before uploading them to your server, as PHP seems not to like Mac-style end of
- lines character ("\r").
-
- Quick Install
-
- 1. Untar or unzip the distribution (be sure to unzip the subdirectories): tar
- -xzvf phpMyAdmin_x.x.x.tar.gz in your webserver's document root. If you
- don't have direct access to your document root, put the files in a
- directory on your local machine, and, after step 3, transfer the directory
- on your web server using, for example, ftp.
- 2. Ensure that all the scripts have the appropriate owner (if PHP is running
- in safe mode, having some scripts with an owner different from the owner of
- other scripts will be a problem). See FAQ 4.2 and FAQ 1.26 for suggestions.
- 3. Now you must configure your installation. There are two methods that can be
- used. Traditionally, users have hand-edited a copy of config.inc.php, but
- now a wizard-style setup script is provided for those who prefer a
- graphical installation. Creating a config.inc.php is still a quick way to
- get started and needed for some advanced features.
- + To manually create the file, simply use your text editor to create the
- file config.inc.php in the main (top-level) phpMyAdmin directory (the
- one that contains index.php). phpMyAdmin first loads libraries/
- config.default.php and then overrides those values with anything found
- in config.inc.php. If the default value is okay for a particular
- setting, there is no need to include it in config.inc.php. You'll need
- a few directives to get going, a simple configuration may look like
- this:
-
- <?php
- $cfg['blowfish_secret'] = 'ba17c1ec07d65003'; // use here a value of your choice
-
- $i=0;
- $i++;
- $cfg['Servers'][$i]['auth_type'] = 'cookie';
- ?>
-
- Or, if you prefer to not be prompted every time you log in:
-
- <?php
-
- $i=0;
- $i++;
- $cfg['Servers'][$i]['user'] = 'root';
- $cfg['Servers'][$i]['password'] = 'cbb74bc'; // use here your password
- ?>
-
- For a full explanation of possible configuration values, see the
- Configuration Section of this document.
- + Instead of manually editing config.inc.php, you can use the Setup
- Script. First you must manually create a folder config in the
- phpMyAdmin directory. This is a security measure. On a Linux/Unix
- system you can use the following commands:
-
- cd phpMyAdmin
- mkdir config # create directory for saving
- chmod o+rw config # give it world writable permissions
-
- And to edit an existing configuration, copy it over first:
-
- cp config.inc.php config/ # copy current configuration for editing
- chmod o+w config/config.inc.php # give it world writable permissions
-
- On other platforms, simply create the folder and ensure that your web
- server has read and write access to it. FAQ 1.26 can help with this.
-
- Next, open scripts/setup.php in your browser. Note that changes are not
- saved to disk until explicitly choose Save from the Configuration area
- of the screen. Normally the script saves the new config.inc.php to the
- config/ directory, but if the webserver does not have the proper
- permissions you may see the error "Cannot load or save configuration."
- Ensure that the config/ directory exists and has the proper permissions
- - or use the Download link to save the config file locally and upload
- (via FTP or some similar means) to the proper location.
-
- Once the file has been saved, it must be moved out of the config/
- directory and the permissions must be reset, again as a security
- measure:
-
- mv config/config.inc.php . # move file to current directory
- chmod o-rw config.inc.php # remove world read and write permissions
-
- Now the file is ready to be used. You can choose to review or edit the
- file with your favorite editor, if you prefer to set some advanced
- options which the setup script does not provide.
- 4. If you are using the auth_type configuration directive, it is suggested
- that you protect the phpMyAdmin installation directory, for example with
- HTTP?AUTH in a .htaccess file. See the multi?user sub?section of this FAQ
- for additional information, especially FAQ 4.4.
- 5. Open the main phpMyAdmin directory in your browser. phpMyAdmin should now
- display a welcome screen and your databases, or a login dialog if using
- HTTP or cookie authentication mode.
- 6. You should deny access to the libraries subfolder in your webserver
- configuration. For Apache you can use supplied .htaccess file in that
- folder, for other webservers, you should configure this yourself. Such
- configuration prevents from possible path exposure and cross side scripting
- vulnerabilities that might happen to be found in that code.
-
- Linked-tables infrastructure
-
- For a whole set of new features (bookmarks, comments, SQL-history,
- PDF-generation, field contents transformation, etc.) you need to create a set
- of special tables. Those tables can be located in your own database, or in a
- central database for a multi-user installation (this database would then be
- accessed by the controluser, so no other user should have rights to it).
-
- Please look at your scripts/ directory, where you should find a file called
- create_tables.sql. (If you are using a Windows server, pay special attention to
- FAQ 1.23).
-
- If your MySQL server's version is 4.1.2 or later, please use
- create_tables_mysql_4_1_2+.sql instead, for a new installation.
-
- If you already had this infrastructure and upgraded to MySQL 4.1.2 or later,
- please use upgrade_tables_mysql_4_1_2+.sql.
-
- You can use your phpMyAdmin to create the tables for you. Please be aware that
- you may need special (administrator) privileges to create the database and
- tables, and that the script may need some tuning, depending on the database
- name.
-
- After having imported the create_tables.sql file, you should specify the table
- names in your config.inc.php file. The directives used for that can be found in
- the Configuration section. You will also need to have a controluser with the
- proper rights to those tables (see section Using authentication modes below).
-
- Upgrading from an older version
-
- Simply copy ./config.inc.php from your previous installation into the newly
- unpacked one. Configuration files from very old versions (2.3.0 or older) may
- require some tweaking as some options have been changed or removed.
-
- You should not copy libraries/config.default.php over config.inc.php because
- the default configuration file is version-specific.
-
- If you have upgraded your MySQL server from a version older than 4.1.2 to
- version 4.1.2 or newer and if you use the pmadb/linked table infrastructure,
- you should run the SQL script found in scripts/upgrade_tables_mysql_4_1_2+.sql.
-
- Using authentication modes
-
- * HTTP and cookie authentication modes are recommended in a multi-user
- environment where you want to give users access to their own database and
- don't want them to play around with others.
- Nevertheless be aware that MS Internet Explorer seems to be really buggy
- about cookies, at least till version 6. And PHP 4.1.1 is also a bit buggy
- in this area!
- Even in a single-user environment, you might prefer to use HTTP or cookie
- mode so that your user/password pair are not in clear in the configuration
- file.
-
- * HTTP and cookie authentication modes are more secure: the MySQL login
- information does not need to be set in the phpMyAdmin configuration file
- (except possibly for the controluser).
- However, keep in mind that the password travels in plain text, unless you
- are using the HTTPS protocol.
- In cookie mode, the password is stored, encrypted with the blowfish
- algorithm, in a temporary cookie.
-
- * Note: starting with phpMyAdmin 2.6.1, this section is only applicable if
- your MySQL server is older than 4.1.2, or is running with
- --skip-show-database.
-
- For 'HTTP' and 'cookie' modes, phpMyAdmin needs a controluser that has only
- the SELECT privilege on the mysql.user (all columns except "Password"),
- mysql.db (all columns), mysql.host (all columns) and mysql.tables_priv (all
- columns except "Grantor" & "Timestamp") tables.
- You must specify the details for the controluser in the config.inc.php file
- under the $cfg['Servers'][$i]['controluser']& $cfg['Servers'][$i]
- ['controlpass'] settings.
- The following example assumes you want to use pma as the controluser and
- pmapass as the controlpass, but this is only an example: use something else
- in your file!
- Of course you have to replace localhost by the webserver's host if it's not
- the same as the MySQL server's one.
-
-
- GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';
- GRANT SELECT (
- Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
- Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
- File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
- Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
- Execute_priv, Repl_slave_priv, Repl_client_priv
- ) ON mysql.user TO 'pma'@'localhost';
- GRANT SELECT ON mysql.db TO 'pma'@'localhost';
- GRANT SELECT ON mysql.host TO 'pma'@'localhost';
- GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
- ON mysql.tables_priv TO 'pma'@'localhost';
-
-
- If you are using an old MySQL version (below 4.0.2), please replace the
- first GRANT SELECT query by this one:
-
-
- GRANT SELECT (
- Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
- Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
- File_priv, Grant_priv, References_priv, Index_priv, Alter_priv
- ) ON mysql.user TO 'pma'@'localhost';
-
-
- ... and if you want to use the many new relation and bookmark features:
-
-
- GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost';
-
-
- (this of course requires that your linked-tables infrastructure be set up).
- Of course, the above queries only work if your MySQL version supports the
- GRANT command. This is the case since 3.22.11.
- * Then each of the true users should be granted a set of privileges on a set
- of particular databases. Normally you shouldn't give global privileges to
- an ordinary user, unless you understand the impact of those privileges (for
- example, you are creating a superuser).
- For example, to grant the user real_user with all privileges on the
- database user_base:
- GRANT ALL PRIVILEGES ON user_base.* TO 'real_user'@localhost IDENTIFIED
- BY 'real_password';
- What the user may now do is controlled entirely by the MySQL user
- management system.
- With HTTP or cookie authentication mode, you don't need to fill the user/
- password fields inside the $cfg['Servers'] array.
-
- 'http' authentication mode
-
- * Was called 'advanced' in versions before 2.2.3.
- * Introduced in 1.3.0, it uses Basic HTTP authentication method and allows
- you to login as any valid MySQL user.
- * Is supported with most PHP configurations. For IIS (ISAPI) support using
- CGI PHP see FAQ 1.32, for using with Apache CGI see FAQ 1.35.
- * See also FAQ 4.4 about not using the .htaccess mechanism along with 'http'
- authentication mode.
-
- 'cookie' authentication mode
-
- * You can use this method as a replacement for the HTTP authentication (for
- example, if you're running IIS).
- * Obviously, the user must enable cookies in the browser.
- * With this mode, the user can truly logout of phpMyAdmin and login back with
- the same username.
- * If you want to login to arbitrary server see $cfg['AllowArbitraryServer']
- directive.
- * As mentioned in the requirements section, having the mcrypt extension will
- speed up access considerably, but is not required.
-
- 'config' authentication mode
-
- * This mode is the less secure one because it requires you to fill the $cfg
- ['Servers'][$i]['user'] and $cfg['Servers'][$i]['password'] fields (and as
- a result, anyone who can read your config.inc.php can discover your
- username and password).
- But you don't need to setup a "controluser" here: using the $cfg['Servers']
- [$i]['only_db'] might be enough.
- * In the ISP FAQ section, there is an entry explaining how to protect your
- configuration file.
- * For additional security in this mode, you may wish to consider the Host
- authentication $cfg['Servers'][$i]['AllowDeny']['order'] and $cfg
- ['Servers'][$i]['AllowDeny']['rules'] configuration directives.
-
-
- Configuration
-
- Warning for Mac users: PHP does not seem to like Mac end of lines character ("\
- r"). So ensure you choose the option that allows to use the *nix end of line
- character ("\n") in your text editor before saving a script you have modified.
-
- Configuration note: Almost all configurable data is placed in config.inc.php.
- If this file does not exist, please refer to the Quick install section to
- create one. This file only needs to contain the parameters you want to change
- from their corresponding default value in libraries/config.default.php.
-
- The parameters which relate to design (like colors) are placed in themes/
- themename/layout.inc.php. You might also want to create config.footer.inc.php
- and config.header.inc.php files to add your site specific code to be included
- on start and end of each page.
-
- $cfg[PmaAbsoluteUri] string
- Sets here the complete URL (with full path) to your phpMyAdmin
- installation's directory. E.g. http://www.your_web.net/
- path_to_your_phpMyAdmin_directory/. Note also that the URL on some web
- servers are case?sensitive. Don?t forget the trailing slash at the end.
-
- Starting with version 2.3.0, it is advisable to try leaving this blank. In
- most cases phpMyAdmin automatically detects the proper setting. Users of
- port forwarding will need to set PmaAbsoluteUri (more info). A good test is
- to browse a table, edit a row and save it. There should be an error message
- if phpMyAdmin is having trouble auto?detecting the correct value. If you
- get an error that this must be set or if the autodetect code fails to
- detect your path, please post a bug report on our bug tracker so we can
- improve the code.
- $cfg[PmaNoRelation_DisableWarning] boolean
- Starting with version 2.3.0 phpMyAdmin offers a lot of features to work
- with master / foreign - tables (see $cfg['Servers'][$i]['pmadb']).
- If you tried to set this up and it does not work for you, have a look on
- the "Structure" page of one database where you would like to use it. You
- will find a link that will analyze why those features have been disabled.
- If you do not want to use those features set this variable to TRUE to stop
- this message from appearing.
- $cfg[blowfish_secret] string
- Starting with version 2.5.2, the 'cookie' auth_type uses blowfish algorithm
- to encrypt the password.
- If you are using the 'cookie' auth_type, enter here a random passphrase of
- your choice. It will be used internally by the blowfish algorithm: you
- won't be prompted for this passphrase. The maximum number of characters for
- this parameter seems to be 46.
- $cfg[Servers] array
- Since version 1.4.2, phpMyAdmin supports the administration of multiple
- MySQL servers. Therefore, a $cfg['Servers']-array has been added which
- contains the login information for the different servers. The first $cfg
- ['Servers'][$i]['host'] contains the hostname of the first server, the
- second $cfg['Servers'][$i]['host'] the hostname of the second server, etc.
- In libraries/config.default.php, there is only one section for server
- definition, however you can put as many as you need in config.inc.php, copy
- that block or needed parts (you don't have to define all settings, just
- those you need to change).
- $cfg['Servers'][$i]['host'] string
- The hostname or IP address of your $i-th MySQL-server. E.g. localhost.
- $cfg['Servers'][$i]['port'] string
- The port-number of your $i-th MySQL-server. Default is 3306 (leave blank).
- If you use "localhost" as the hostname, MySQL ignores this port number and
- connects with the socket, so if you want to connect to a port different
- from the default port, use "127.0.0.1" or the real hostname in $cfg
- ['Servers'][$i]['host'].
- $cfg['Servers'][$i]['socket'] string
- The path to the socket to use. Leave blank for default.
- $cfg['Servers'][$i]['connect_type'] string
- What type connection to use with the MySQL server. Your options are
- 'socket' & 'tcp'. It defaults to 'tcp' as that is nearly guaranteed to be
- available on all MySQL servers, while sockets are not supported on some
- platforms.
-
- To use the socket mode, your MySQL server must be on the same machine as
- the Web server.
- $cfg['Servers'][$i]['extension'] string
- What php MySQL extension to use for the connection. Valid options are:
-
- mysql : The classic MySQL extension. This is the recommended and default
- method at this time.
-
- mysqli : The improved MySQL extension. This extension became available
- with php 5.0.0 and is the recommended way to connect to a server running
- MySQL 4.1.x.
- $cfg['Servers'][$i]['compress'] boolean
- Whether to use a compressed protocol for the MySQL server connection or not
- (experimental).
- This feature requires PHP >= 4.3.0.
- $cfg['Servers'][$i]['controluser'] string
- $cfg['Servers'][$i]['controlpass'] string
- This special account is used for 2 distinct purposes: to make possible all
- relational features (see $cfg['Servers'][$i]['pmadb']) and, for a MySQL
- server older than 4.1.2 or running with --skip-show-database, to enable a
- multi-user installation (http or cookie authentication mode).
-
- When using HTTP or cookie authentication modes (or 'config' authentication
- mode since phpMyAdmin 2.2.1), you need to supply the details of a MySQL
- account that has SELECT privilege on the mysql.user (all columns except
- "Password"), mysql.db (all columns) & mysql.tables_priv (all columns except
- "Grantor" & "Timestamp") tables. This account is used to check what
- databases the user will see at login.
- Please see the install section on "Using authentication modes" for more
- information.
-
- In phpMyAdmin versions before 2.2.5, those were called "stduser/stdpass".
- $cfg['Servers'][$i]['auth_type'] string ['http'|'cookie'|'config']
- Whether config or cookie or http authentication should be used for this
- server.
- + 'config' authentication ($auth_type = 'config') is the plain old way:
- username and password are stored in config.inc.php.
- + 'cookie' authentication mode ($auth_type = 'cookie') as introduced in
- 2.2.3 allows you to log in as any valid MySQL user with the help of
- cookies. Username and password are stored in cookies during the session
- and password is deleted when it ends. This can also allow you to login
- in arbitrary server if $cfg['AllowArbitraryServer'] enabled.
- + 'http' authentication (was called 'advanced' in older versions)
- ($auth_type = 'http') as introduced in 1.3.0 allows you to log in as
- any valid MySQL user via HTTP-Auth.
-
- Please see the install section on "Using authentication modes" for more
- information.
- $cfg['Servers'][$i]['user'] string
- $cfg['Servers'][$i]['password'] string
- When using auth_type = 'config', this is the user/password-pair which
- phpMyAdmin will use to connect to the MySQL server. This user/password pair
- is not needed when HTTP or cookie authentication is used and should be
- empty.
- $cfg['Servers'][$i]['only_db'] string or array
- If set to a (an array of) database name(s), only this (these) database(s)
- will be shown to the user. Since phpMyAdmin 2.2.1, this/these database(s)
- name(s) may contain MySQL wildcards characters ("_" and "%"): if you want
- to use literal instances of these characters, escape them (I.E. use 'my\
- _db' and not 'my_db').
- This setting is an efficient way to lower the server load since the latter
- does not need to send MySQL requests to build the available database list.
- But it does not replace the privileges rules of the MySQL database server.
- If set, it just means only these databases will be displayed but not that
- all other databases can't be used.
-
- An example of using more that one database: $cfg['Servers'][$i]['only_db']
- = array('db1', 'db2');
-
- As of phpMyAdmin 2.5.5 the order inside the array is used for sorting the
- databases in the left frame, so that you can individually arrange your
- databases.
- If you want to have certain databases at the top, but don't care about the
- others, you do not need to specify all other databases. Use: $cfg
- ['Servers'][$i]['only_db'] = array('db3', 'db4', '*'); instead to tell
- phpMyAdmin that it should display db3 and db4 on top, and the rest in
- alphabetic order.
- $cfg['Servers'][$i]['hide_db'] string
- Regular expression for hiding some databases. This only hides them from
- listing, but user is still able to access them.
- $cfg['Servers'][$i]['verbose'] string
- Only useful when using phpMyAdmin with multiple server entries. If set,
- this string will be displayed instead of the hostname in the pull-down menu
- on the main page. This can be useful if you want to show only certain
- databases on your system, for example.
- $cfg['Servers'][$i]['pmadb'] string
- The name of the database containing the linked-tables infrastructure.
-
- See the Linked-tables infrastructure section in this document to see the
- benefits of this infrastructure, and for a quick way of creating this
- database and the needed tables.
-
- If you are the only user of this phpMyAdmin installation, you can use your
- current database to store those special tables; in this case, just put your
- current database name in $cfg['Servers'][$i]['pmadb']. For a multi-user
- installation, set this parameter to the name of your central database
- containing the linked-tables infrastructure.
- $cfg['Servers'][$i]['bookmarktable'] string
- Since release 2.2.0 phpMyAdmin allows to bookmark queries. This can be
- useful for queries you often run.
-
- To allow the usage of this functionality:
- + set up pmadb and the linked-tables infrastructure
- + enter the table name in $cfg['Servers'][$i]['bookmarktable']
- $cfg['Servers'][$i]['relation'] string
- Since release 2.2.4 you can describe, in a special 'relation' table, which
- field is a key in another table (a foreign key). phpMyAdmin currently uses
- this to
- + make clickable, when you browse the master table, the data values that
- point to the foreign table;
- + display in an optional tool-tip the "display field" when browsing the
- master table, if you move the mouse to a column containing a foreign
- key (use also the 'table_info' table);
- (see FAQ 6.7)
- + in edit/insert mode, display a drop-down list of possible foreign keys
- (key value and "display field" are shown)
- (see FAQ 6.21)
- + display links on the table properties page, to check referential
- integrity (display missing foreign keys) for each described key;
- + in query-by-example, create automatic joins (see FAQ 6.6)
- + enable you to get a PDF schema of your database (also uses the
- table_coords table).
- The keys can be numeric or character.
-
- To allow the usage of this functionality:
- + set up pmadb and the linked-tables infrastructure
- + put the relation table name in $cfg['Servers'][$i]['relation']
- + now as normal user open phpMyAdmin and for each one of your tables
- where you want to use this feature, click "Structure/Relation view/"
- and choose foreign fields.
- Please note that in the current version, master_db must be the same as
- foreign_db. Those fields have been put in future development of the
- cross-db relations.
- $cfg['Servers'][$i]['table_info'] string
- Since release 2.3.0 you can describe, in a special 'table_info' table,
- which field is to be displayed as a tool-tip when moving the cursor over
- the corresponding key.
- This configuration variable will hold the name of this special table. To
- allow the usage of this functionality:
- + set up pmadb and the linked-tables infrastructure
- + put the table name in $cfg['Servers'][$i]['table_info']
- + then for each table where you want to use this feature, click
- "Structure/Relation view/Choose field to display" to choose the field.
- Usage tip: Display field.
- $cfg['Servers'][$i]['table_coords'] string
- $cfg['Servers'][$i]['pdf_pages'] string
- Since release 2.3.0 you can have phpMyAdmin create PDF pages showing the
- relations between your tables. To do this it needs two tables "pdf_pages"
- (storing information about the available PDF pages) and "table_coords"
- (storing coordinates where each table will be placed on a PDF schema
- output).
-
- You must be using the "relation" feature.
-
- To allow the usage of this functionality:
- + set up pmadb and the linked-tables infrastructure
- + put the correct table names in $cfg['Servers'][$i]['table_coords'] and
- $cfg['Servers'][$i]['pdf_pages']
- Usage tips: PDF output.
- $cfg['Servers'][$i]['column_info'] string
- Since release 2.3.0 you can store comments to describe each column for each
- table. These will then be shown on the "printview".
-
- Starting with release 2.5.0, comments are consequently used on the table
- property pages and table browse view, showing up as tool-tips above the
- column name (properties page) or embedded within the header of table in
- browse view. They can also be shown in a table dump. Please see the
- relevant configuration directives later on.
-
- Also new in release 2.5.0 is a MIME-transformation system which is also
- based on the following table structure. See Transformations for further
- information. To use the MIME-transformation system, your column_info table
- has to have the three new fields 'mimetype', 'transformation',
- 'transformation_options'.
-
- To allow the usage of this functionality:
- + set up pmadb and the linked-tables infrastructure
- + put the table name in $cfg['Servers'][$i]['column_info']
- + to update your PRE-2.5.0 Column_comments Table use this:
- ALTER TABLE `pma_column_comments`
- ADD `mimetype` VARCHAR( 255 ) NOT NULL ,
- ADD `transformation` VARCHAR( 255 ) NOT NULL ,
- ADD `transformation_options` VARCHAR( 255 ) NOT NULL ;
- and remember that the Variable in config.inc.php has been renamed from
- $cfg['Servers'][$i]['column_comments'] to $cfg['Servers'][$i]
- ['column_info']
- $cfg['Servers'][$i]['history'] string
- Since release 2.5.0 you can store your SQL history, which means all queries
- you entered manually into the phpMyAdmin interface. If you don't want to
- use a table- based history, you can use the JavaScript-based history. Using
- that, all your history items are deleted when closing the window.
-
- Using $cfg[QueryHistoryMax] you can specify an amount of history items you
- want to have on hold. On every login, this list gets cut to the maximum
- amount.
-
- The query history is only available if JavaScript is enabled in your
- browser.
-
- To allow the usage of this functionality:
- + set up pmadb and the linked-tables infrastructure
- + put the table name in $cfg['Servers'][$i]['history']
- $cfg['Servers'][$i]['verbose_check'] boolean
- Because release 2.5.0 introduced the new MIME-transformation support, the
- column_info table got enhanced with three new fields. If the above variable
- is set to TRUE (default) phpMyAdmin will check if you have the latest table
- structure available. If not, it will emit a warning to the superuser.
-
- You can disable this checking behavior by setting the variable to false,
- which should offer a performance increase.
-
- Recommended to set to FALSE, when you are sure, your table structure is up
- to date.
- $cfg['Servers'][$i]['AllowRoot'] boolean
- Whether to allow root access, This is just simplification of rules below.
- $cfg['Servers'][$i]['AllowDeny']['order'] string
- If your rule order is empty, then IP authentication is disabled.
-
- If your rule order is set to 'deny,allow' then the system applies all deny
- rules followed by allow rules. Access is allowed by default. Any client
- which does not match a Deny command or does match an Allow command will be
- allowed access to the server.
-
- If your rule order is set to 'allow,deny' then the system applies all allow
- rules followed by deny rules. Access is denied by default. Any client which
- does not match an Allow directive or does match a Deny directive will be
- denied access to the server.
-
- If your rule order is set to 'explicit', the authentication is performed in
- a similar fashion to rule order 'deny,allow', with the added restriction
- that your host/username combination must be listed in the allow rules, and
- not listed in the deny rules. This is the most secure means of using Allow/
- Deny rules, and was available in Apache by specifying allow and deny rules
- without setting any order.
- $cfg['Servers'][$i]['AllowDeny']['rules'] array of strings
- The general format for the rules is as such:
- <'allow' | 'deny'> <username> [from] <ipmask>
-
- If you wish to match all users, it is possible to use a '%' as a wildcard
- in the username field.
- There are a few shortcuts you can use in the ipmask field as well (please
- note that those containing SERVER_ADDRESS might not be available on all
- webservers):
-
- 'all' -> 0.0.0.0/0
- 'localhost' -> 127.0.0.1/8
- 'localnetA' -> SERVER_ADDRESS/8
- 'localnetB' -> SERVER_ADDRESS/16
- 'localnetC' -> SERVER_ADDRESS/24
-
- Having an empty rule list is equivalent to either using 'allow % from all'
- if your rule order is set to 'deny,allow' or 'deny % from all' if your rule
- order is set to 'allow,deny' or 'explicit'.
-
- For the IP matching system, the following work:
- xxx.xxx.xxx.xxx (an exact IP address)
- xxx.xxx.xxx.[yyy-zzz] (an IP address range)
- xxx.xxx.xxx.xxx/nn (CIDR, Classless Inter-Domain Routing type IP addresses)
- But the following does not work:
- xxx.xxx.xxx.xx[yyy-zzz] (partial IP address range)
- $cfg[ServerDefault] integer
- If you have more than one server configured, you can set $cfg
- ['ServerDefault'] to any one of them to autoconnect to that server when
- phpMyAdmin is started, or set it to 0 to be given a list of servers without
- logging in.
- If you have only one server configured, $cfg['ServerDefault'] MUST be set
- to that server.
- $cfg[OBGzip] string/boolean
- Defines whether to use GZip output buffering for increased speed in HTTP
- transfers.
- Set to true/false for enabling/disabling. When set to 'auto' (string),
- phpMyAdmin tries to enable output buffering and will automatically disable
- it, if your browser has some problems with buffering. IE6 with a certain
- patch is known to cause data corruption having enabled buffering.
- $cfg[PersistentConnections] boolean
- Whether persistent connections should be used or not (mysql_connect or
- mysql_pconnect).
- $cfg[ForceSSL] boolean
- Whether to force using https while accessing phpMyAdmin.
- $cfg[ExecTimeLimit] integer [number of seconds]
- Set the number of seconds a script is allowed to run. If seconds is set to
- zero, no time limit is imposed.
- This setting is used while importing/exporting dump files but has no effect
- when PHP is running in safe mode.
- $cfg[MemoryLimit] integer [number of bytes]
- Set the number of bytes a script is allowed to allocate. If number set to
- zero, no limit is imposed.
- This setting is used while importing/exporting dump files but has no effect
- when PHP is running in safe mode.
- You can also use any string as in php.ini, eg. '16M'.
- $cfg[SkipLockedTables] boolean
- Mark used tables and make it possible to show databases with locked tables
- (since 3.23.30).
- $cfg[ShowSQL] boolean
- Defines whether SQL-queries generated by phpMyAdmin should be displayed or
- not.
- $cfg[AllowUserDropDatabase] boolean
- Defines whether normal users (non-administrator) are allowed to delete
- their own database or not. If set as FALSE, the link "Drop Database" will
- not be shown, and even a "DROP DATABASE mydatabase" will be rejected. Quite
- practical for ISP's with many customers.
- $cfg[Confirm] boolean
- Whether a warning ("Are your really sure...") should be displayed when
- you're about to lose data.
- $cfg[LoginCookieRecall] boolean
- Define whether the previous login should be recalled or not in cookie
- authentication mode.
- $cfg[UseDbSearch] boolean
- Define whether the "search string inside database" is enabled or not.
- $cfg[IgnoreMultiSubmitErrors] boolean
- Define whether phpMyAdmin will continue executing a multi-query statement
- if one of the queries fails. Default is to abort execution.
- $cfg[VerboseMultiSubmit] boolean
- Define whether phpMyAdmin will output the results of each query of a
- multi-query statement embedded into the SQL output as inline comments.
- Defaults to TRUE.
- $cfg[AllowArbitraryServer] boolean
- If enabled allows you to login to arbitrary server using cookie auth.
-
- NOTE: Please use this carefully, as this may allow to access MySQL servers
- behind firewall where your http server is placed.
-
- $cfg[LeftFrameLight] boolean
- Defines whether to use select-based menu and display only the current
- tables in the left frame (smaller page). Only in Non-Lightmode you can use
- the feature to display nested folders using $cfg['LeftFrameTableSeparator']
- $cfg[LeftFrameDBTree] boolean
- In light mode, defines whether to display the names of databases (in the
- selector) using a tree, see also $cfg['LeftFrameDBSeparator'].
- $cfg[LeftFrameDBSeparator] string
- The string used to separate the parts of the database name when showing
- them in a tree.
- $cfg[LeftFrameTableSeparator] string
- Defines a string to be used to nest table spaces. Defaults to '__'. This
- means if you have tables like 'first__second__third' this will be shown as
- a three-level hierarchy like: first > second > third. If set to FALSE or
- empty, the feature is disabled. NOTE: You shall not use this Separator in a
- table name at the beginning or end of a table name, or multiple times after
- another without any other characters in between.
- $cfg[LeftFrameTableLevel] string
- Defines how many sublevels should be displayed when splitting up tables by
- the above Separator.
- $cfg[ShowTooltip] boolean
- Defines whether to display table comment as tool-tip in left frame or not.
- $cfg[ShowTooltipAliasDB] boolean
- If tool-tips are enabled and a DB comment is set, this will flip the
- comment and the real name. That means, if you have a table called
- 'user0001' and add the comment 'MyName' on it, you will see the name
- 'MyName' used consequently in the left frame and the tool-tip shows the
- real name of the DB.
- $cfg[ShowTooltipAliasTB] boolean/string
- Same as $cfg['ShowTooltipAliasDB'], except this works for table names. When
- setting this to 'nested', the Alias of the Tablename is only used to split/
- nest the tables according to the $cfg['LeftFrameTableSeparator'] directive.
- So only the folder is called like the Alias, the tablename itself stays the
- real tablename.
-
- $cfg[LeftDisplayLogo] boolean
- Defines whether to display the phpMyAdmin logo at the top of the left frame
- or not. Defaults to TRUE.
- $cfg[LeftDisplayServers] boolean
- Defines whether to display a server choice at the top of the left frame or
- not. Defaults to FALSE.
- $cfg[DisplayServersList] boolean
- Defines whether to display this server choice as links instead of in a
- drop-down. Defaults to FALSE (drop-down).
- $cfg[ShowStats] boolean
- Defines whether to display space usage and statistics about databases and
- tables or not.
- Note that statistics requires at least MySQL 3.23.3 and that, at this date,
- MySQL doesn't return such information for Berkeley DB tables.
- $cfg[ShowPhpInfo] boolean
- $cfg[ShowChgPassword] boolean
- Defines whether to display the "PHP information" and "Change password "
- links or not for simple users at the starting main (right) frame. This
- setting does not check MySQL commands entered directly.
-
- Please note that to block the usage of phpinfo() in scripts, you have to
- put this in your php.ini:
- disable_functions = phpinfo()
-
- Also note that enabling the "Change password " link has no effect with
- "config" authentication mode: because of the hard coded password value in
- the configuration file, end users can't be allowed to change their
- passwords.
- $cfg[SuggestDBName] boolean
- Defines whether to suggest a database name on the "Create Database" form or
- to keep the textfield empty.
- $cfg[ShowBlob] boolean
- Defines whether BLOB fields are shown when browsing a table's content or
- not.
- $cfg[NavigationBarIconic] string
- Defines whether navigation bar buttons and the right panel top menu contain
- text or symbols only. A value of TRUE displays icons, FALSE displays text
- and 'both' displays both icons and text.
- $cfg[ShowAll] boolean
- Defines whether an user should be displayed a "show all (records)" button
- in browse mode or not.
- $cfg[MaxRows] integer
- Number of rows displayed when browsing a result set. If the result set
- contains more rows, Previous/Next links will be shown.
- $cfg[Order] string [DESC|ASC|SMART]
- Defines whether fields are displayed in ascending (ASC) order, in
- descending (DESC) order or in a "smart" (SMART) order - I.E. descending
- order for fields of type TIME, DATE, DATETIME & TIMESTAMP, ascending order
- else- by default.
- $cfg[ProtectBinary] boolean or string
- Defines whether BLOB or BINARY fields are protected from editing when
- browsing a table's content or not. Valid values are:
- + FALSE to allow editing of all fields;
- + 'blob' to allow editing of all fields except BLOBS;
- + 'all' to disallow editing of all BINARY or BLOB fields.
- $cfg[ShowFunctionFields] boolean
- Defines whether MySQL functions fields should be displayed or not in edit/
- insert mode.
- $cfg[CharEditing] string
- Defines which type of editing controls should be used for CHAR and VARCHAR
- fields. Possible values are:
- + input - this allows to limit size of text to size of field in MySQL,
- but has problems with newlines in fields
- + textarea - no problems with newlines in fields, but also no length
- limitations
- Default is old behavior so input.
- $cfg[InsertRows] integer
- Defines the maximum number of concurrent entries for the Insert page.
- $cfg[ForeignKeyMaxLimit] integer
- If there are fewer items than this in the set of foreign keys, then a
- drop-down box of foreign keys is presented, in the style described by the
- $cfg[ForeignKeyDropdownOrder] setting.
- $cfg[ForeignKeyDropdownOrder] array
- For the foreign key drop-down fields, there are several methods of display,
- offering both the key and value data. The contents of the array should be
- one or both of the following strings: 'content-id', 'id-content'.
- $cfg[ZipDump] boolean
- $cfg[GZipDump] boolean
- $cfg[BZipDump] boolean
- Defines whether to allow the use of zip/GZip/BZip2 compression when
- creating a dump file or not.
- $cfg[CompressOnFly] boolean
- Defines whether to allow on the fly compression for GZip/BZip2 compressed
- exports. This doesn't affect smaller dumps and allows to create larger
- dumps, that won't fit otherwise in memory due to php memory limit. Produced
- files contain more GZip/BZip2 headers, but all normal programs handle this
- correctly.
- $cfg[LightTabs] string
- If set to True, use less graphically intense tabs on the top of the
- mainframe.
- $cfg[PropertiesIconic] string
- If set to TRUE, will display icons instead of text for db and table
- properties links (like 'Browse', 'Select', 'Insert', ...).
- Can be set to 'both' if you want icons AND text.
- When set to FALSE, will only show text.
- $cfg[PropertiesNumColumns] integer
- How many columns will be utilized to display the tables on the database
- property view? Default is 1 column. When setting this to a value larger
- than 1, the type of the database will be omitted for more display space.
- $cfg[DefaultTabServer] string
- Defines the tab displayed by default on server view. Possible values:
- "main.php" (recommended for multi-user setups), "server_databases.php",
- "server_status.php", "server_variables.php", "server_privileges.php" or
- "server_processlist.php".
- $cfg[DefaultTabDatabase] string
- Defines the tab displayed by default on database view. Possible values:
- "db_details_structure.php", "db_details.php" or "db_search.php".
- $cfg[DefaultTabTable] string
- Defines the tab displayed by default on table view. Possible values:
- "tbl_properties_structure.php", "tbl_properties.php", "tbl_select.php",
- "tbl_change.php" or "sql.php".
- $cfg[MySQLManualBase] string
- If set to an URL which points to the MySQL documentation (type depends on
- $cfg['MySQLManualType']), appropriate help links are generated.
- See MySQL Documentation page for more information about MySQL manuals and
- their types.
- $cfg[MySQLManualType] string
- Type of MySQL documentation:
- + viewable - "viewable online", current one used on MySQL website
- + searchable - "Searchable, with user comments"
- + chapters - "HTML, one page per chapter"
- + big - "HTML, all on one page"
- + none - do not show documentation links
- $cfg[DefaultLang] string
- Defines the default language to use, if not browser-defined or
- user-defined.
- See the select_lang.lib.php script to know the valid values for this
- setting.
- $cfg[DefaultConnectionCollation] string
- Defines the default connection collation to use, if not user-defined.
- See the MySQL documentation for list of possible values.
- $cfg[Lang] string
- Force: always use this language (must be defined in the select_lang.lib.php
- script).
- $cfg[FilterLanguages] string
- Limit list of available languages to those matching the given regular
- expression. For example if you want only Czech and English, you should set
- filter to '^(cs|en)'.
- $cfg[DefaultCharset] string
- Default character set to use for recoding of MySQL queries. This must be
- enabled and it's described by $cfg['AllowAnywhereRecoding'] option.
- You can give here any character set which is in $cfg['AvailableCharsets']
- array and this is just default choice, user can select any of them.
- $cfg[AllowAnywhereRecoding] boolean
- Allow character set recoding of MySQL queries. You need recode or iconv
- support (compiled in or module) in PHP to allow MySQL queries recoding and
- used language file must have it enabled (by default only these which are in
- Unicode, just to avoid losing some characters).
-
- Setting this to TRUE also activates a pull-down menu in the Export page, to
- choose the character set when exporting a file.
- $cfg[RecodingEngine] string
- You can select here which functions will be used for character set
- conversion. Possible values are:
- + auto - automatically use available one (first is tested iconv, then
- recode)
- + iconv - use iconv or libiconv functions
- + recode - use recode_string function
- Default is auto.
- $cfg[IconvExtraParams] string
- Specify some parameters for iconv used in charset conversion. See iconv
- documentation for details. By default //TRANSLIT is used, so that invalid
- characters will be transliterated.
- $cfg[AvailableCharsets] array
- Available character sets for MySQL conversion. You can add your own (any of
- supported by recode/iconv) or remove these which you don't use. Character
- sets will be shown in same order as here listed, so if you frequently use
- some of these move them to the top.
- $cfg[GD2Available] string
- Specifies whether GD >= 2 is available. If yes it can be used for MIME
- transformations.
- Possible values are:
- + auto - automatically detect, this is a bit expensive operation for php
- < 4.3.0 so it is preferred to change this according to your server real
- possibilities
- + yes - GD 2 functions can be used
- + no - GD 2 function cannot be used
- Default is auto.
- $cfg[LeftWidth] integer
- Left frame width in pixel. See themes/themename/layout.inc.php.
- $cfg[LeftBgColor] string [HTML color]
- $cfg[RightBgColor] string [HTML color]
- The background colors (HTML) used for both the frames. See themes/themename
- /layout.inc.php.
- $cfg[RightBgImage] string
- The URI of the background image used for the right frame. It must be an
- absolute URI. See themes/themename/layout.inc.php.
- $cfg[LeftPointerColor] string [HTML color]
- The color (HTML) used for the pointer in the left frame (does not work with
- Netscape 4). See themes/themename/layout.inc.php.
- $cfg[LeftPointerEnable] boolean
- A value of TRUE activates the left pointer (when LeftFrameLight is FALSE).
- $cfg[Border] integer
- The size of a table's border. See themes/themename/layout.inc.php.
- $cfg[ThBgcolor] string [HTML color]
- The color (HTML) used for table headers. See themes/themename/
- layout.inc.php.
- $cfg[BgcolorOne] string [HTML color]
- The color (HTML) #1 for table rows. See themes/themename/layout.inc.php.
- $cfg[BgcolorTwo] string [HTML color]
- The color (HTML) #2 for table rows. See themes/themename/layout.inc.php.
- $cfg[BrowsePointerColor] string [HTML color]
- $cfg[BrowseMarkerColor] string [HTML color]
- The colors (HTML) uses for the pointer and the marker in browse mode (does
- not work with Netscape 4).
- The former feature highlights the row over which your mouse is passing and
- the latter lets you visually mark/unmark rows by clicking on them.
- See themes/themename/layout.inc.php.
- $cfg[BrowsePointerEnable] boolean
- Whether to activate the browse pointer or not.
- $cfg[BrowseMarkerEnable] boolean
- Whether to activate the browse marker or not.
- $cfg[TextareaCols] integer
- $cfg[TextareaRows] integer
- $cfg[CharTextareaCols] integer
- $cfg[CharTextareaRows] integer
- Number of columns and rows for the textareas.
- This value will be emphasized (*2) for SQL query textareas and (*1.25) for
- SQL textareas inside the query window.
- The Char* values are used for CHAR and VARCHAR editing (if configured via
- $cfg['CharEditing']).
- $cfg[LongtextDoubleTextarea] boolean
- Defines whether textarea for LONGTEXT fields should have double size.
- $cfg[TextareaAutoSelect] boolean
- Defines if the whole textarea of the query box will be selected on click.
- $cfg[CtrlArrowsMoving] boolean
- Enable Ctrl+Arrows (Option+Arrows in Safari) moving between fields when
- editing.
- $cfg[LimitChars] integer
- Maximal number of Chars showed in any non-numeric field on browse view. Can
- be turned off by a toggle button on the browse page.
- $cfg[ModifyDeleteAtLeft] boolean $cfg[ModifyDeleteAtRight] boolean
- Defines the place where modify and delete links would be put when tables
- contents are displayed (you may have them displayed both at the left and at
- the right). "Left" and "right" are parsed as "top" and "bottom" with
- vertical display mode.
- $cfg[DefaultDisplay] string $cfg[HeaderFlipType] string
- There are 3 display modes: horizontal, horizontalflipped and vertical.
- Define which one is displayed by default. The first mode displays each row
- on a horizontal line, the second rotates the headers by 90 degrees, so you
- can use descriptive headers even though fields only contain small values
- and still print them out. The vertical mode sorts each row on a vertical
- lineup.
-
- The HeaderFlipType can be set to 'css' or 'faked'. When using 'css' the
- rotation of the header for horizontalflipped is done via CSS. If set to
- 'faked' PHP does the transformation for you, but of course this does not
- look as good as CSS.
- $cfg[DefaultPropDisplay] string
- When editing/creating new columns in a table all fields normally get lined
- up one field a line. (default: 'horizontal'). If you set this to 'vertical'
- you can have each field lined up vertically beneath each other. You can
- save up a lot of place on the horizontal direction and no longer have to
- scroll.
- $cfg[ShowBrowseComments] boolean
- $cfg[ShowPropertyComments] boolean
- By setting the corresponding variable to TRUE you can enable the display of
- column comments in Browse or Property display. In browse mode, the comments
- are show inside the header. In property mode, comments are displayed using
- a CSS-formatted dashed-line below the name of the field. The comment is
- shown as a tool-tip for that field.
- $cfg[UploadDir] string
- The name of the directory where SQL files have been uploaded by other means
- than phpMyAdmin (for example, ftp). Those files are available under a
- drop-down box when you click the database name, then the SQL tab.
-
- If you want different directory for each user, %u will be replaced with
- username.
-
- Please note that the file names must have the suffix ".sql" (or ".sql.bz2"
- or ".sql.gz" if support for compressed formats is enabled).
-
- This feature is useful when your file is too big to be uploaded via HTTP,
- or when file uploads are disabled in PHP.
-
- Please note that if PHP is running in safe mode, this directory must be
- owned by the same user as the owner of the phpMyAdmin scripts.
-
- See also FAQ 1.16 for alternatives.
- $cfg[docSQLDir] string
- The name of the directory where docSQL files can be uploaded for import
- into phpMyAdmin.
-
- Please note that if PHP is running in safe mode, this directory must be
- owned by the same user as the owner of the phpMyAdmin scripts.
- $cfg[SaveDir] string
- The name of the directory where dumps can be saved.
-
- If you want different directory for each user, %u will be replaced with
- username.
-
- Please note that the directory has to be writable for user running
- webserver.
-
- Please note that if PHP is running in safe mode, this directory must be
- owned by the same user as the owner of the phpMyAdmin scripts.
- $cfg[TempDir] string
- The name of the directory, where temporary files can be stored.
-
- This is needed for native MS Excel export, see FAQ 6.23
- $cfg[Export] array
- In this array are defined default parameters for export, names of items are
- similar to texts seen on export page, so you can easily identify what they
- mean.
- $cfg[Import] array
- In this array are defined default parameters for import, names of items are
- similar to texts seen on import page, so you can easily identify what they
- mean.
- $cfg[RepeatCells] integer
- Repeat the headers every X cells, or 0 to deactivate.
- $cfg[EditInWindow] boolean
- $cfg[QueryWindowWidth] integer
- $cfg[QueryWindowHeight] integer
- $cfg[QueryHistoryDB] boolean
- $cfg[QueryWindowDefTab] string
- $cfg[QueryHistoryMax] integer
- All those variables affect the query window feature. A SQL link or icon is
- always displayed on the left panel. If JavaScript is enabled in your
- browser, a click on this opens a distinct query window, which is a direct
- interface to enter SQL queries. Otherwise, the right panel changes to
- display a query box.
-
- The size of this query window can be customized with $cfg
- ['QueryWindowWidth'] and $cfg['QueryWindowWidth'] - both integers for the
- size in pixels. Note that normally, those parameters will be modified in
- layout.inc.php for the theme you are using.
-
- If $cfg['EditInWindow'] is set to true, a click on [Edit] from the results
- page (in the "Showing Rows" section) opens the query window and puts the
- current query inside it. If set to false, clicking on the link puts the SQL
- query in the right panel's query box.
-
- The usage of the JavaScript query window is recommended if you have a
- JavaScript enabled browser. Basic functions are used to exchange quite a
- few variables, so most 4th generation browsers should be capable to use
- that feature. It currently is only tested with Internet Explorer 6 and
- Mozilla 1.x.
-
- If $cfg['QueryHistoryDB'] is set to TRUE, all your Queries are logged to a
- table, which has to be created by you (see $cfg['Servers'][$i]['history']).
- If set to FALSE, all your queries will be appended to the form, but only as
- long as your window is opened they remain saved.
-
- When using the JavaScript based query window, it will always get updated
- when you click on a new table/db to browse and will focus if you click on
- "Edit SQL" after using a query. You can suppress updating the query window
- by checking the box "Do not overwrite this query from outside the window"
- below the query textarea. Then you can browse tables/databases in the
- background without losing the contents of the textarea, so this is
- especially useful when composing a query with tables you first have to look
- in. The checkbox will get automatically checked whenever you change the
- contents of the textarea. Please uncheck the button whenever you definitely
- want the query window to get updated even though you have made alterations.
-
- If $cfg['QueryHistoryDB'] is set to TRUE you can specify the amount of
- saved history items using $cfg['QueryHistoryMax'].
-
- The query window also has a custom tabbed look to group the features. Using
- the variable $cfg['QueryWindowDefTab'] you can specify the default tab to
- be used when opening the query window. It can be set to either 'sql',
- 'files', 'history' or 'full'.
- $cfg[BrowseMIME] boolean
- Enable MIME-transformations.
- $cfg[MaxExactCount] integer
- + For InnoDB tables, determines for how large tables phpMyAdmin should
- get the exact row count using SELECT COUNT. If the approximate row
- count as returned by SHOW TABLE STATUS is smaller than this value,
- SELECT COUNT will be used, otherwise the approximate count will be
- used.
- + For VIEWs, since obtaining the exact count could have an impact on
- performance, this value is the maximum to be displayed.
- $cfg[WYSIWYG-PDF] boolean
- Utilizes a WYSIWYG editing control to easily place elements of a PDF page.
- By clicking on the button 'toggle scratchboard' on the page where you edit
- x/y coordinates of those elements you can activate a scratchboard where all
- your elements are placed. By clicking on an element, you can move them
- around in the pre-defined area and the x/y coordinates will get updated
- dynamically. Likewise, when entering a new position directly into the input
- field, the new position in the scratchboard changes after your cursor
- leaves the input field.
- You have to click on the 'OK'-button below the tables to save the new
- positions. If you want to place a new element, first add it to the table of
- elements and then you can drag the new element around.
- By changing the paper size and the orientation you can change the size of
- the scratchboard as well. You can do so by just changing the dropdown field
- below, and the scratchboard will resize automatically, without interfering
- with the current placement of the elements.
- If ever an element gets out of range you can either enlarge the paper size
- or click on the 'reset' button to place all elements below each other.
- NOTE: You have to use a recent browser like IE6 or Mozilla to get this
- control to work. The basic Drag&Drop script functionality was kindly
- borrowed from www.youngpup.net and is underlying so specific license.
- $cfg[NaturalOrder] boolean
- Sorts database and table names according to natural order (for example, t1,
- t2, t10). Currently implemented in the left panel (Light mode) and in
- Database view, for the table list.
- $cfg[ShowHttpHostTitle] boolean
- Shows the HTTP host name in window's title bar.
- $cfg[SetHttpHostTitle] string
- If $cfg['ShowHttpHostTitle'] is TRUE, it shows the real HTTP host name,
- unless an alternate name is set here.
- $cfg[ErrorIconic] boolean
- Uses icons for warnings, errors and informations.
- $cfg[MainPageIconic] boolean
- Uses icons on main page in lists and menu tabs.
- $cfg[ReplaceHelpImg] boolean
- Shows a help button instead of the "Documentation" message.
- $cfg[ThemePath] string
- If theme manager is active, use this as the path of the subdirectory
- containing all the themes.
- $cfg[ThemeManager] boolean
- Enables user-selectable themes. See FAQ 2.7.
- $cfg[ThemeDefault] string
- The default theme (a subdirectory under cfg['ThemePath']).
- $cfg[ThemePerServer] boolean
- Whether to allow different theme for each server.
- $cfg[DefaultQueryTable] string
- $cfg[DefaultQueryDatabase] string
- Default queries that will be displayed in query boxes when user didn't
- specify any. Use %d for database name, %t for table name and %f for a comma
- separated list of field names. Note that %t and %f are only applicable to
- $cfg['DefaultQueryTable'].
- $cfg[SQP]['fmtType'] string [html|none]
- The main use of the new SQL Parser is to pretty-print SQL queries. By
- default we use HTML to format the query, but you can disable this by
- setting this variable to 'none'.
- $cfg[SQP]['fmtInd'] float
- $cfg[SQP]['fmtIndUnit'] string [em|px|pt|ex]
- For the pretty-printing of SQL queries, under some cases the part of a
- query inside a bracket is indented. By changing $cfg['SQP']['fmtInd'] you
- can change the amount of this indent.
- Related in purpose is $cfg['SQP']['fmtIndUnit'] which specifies the units
- of the indent amount that you specified. This is used via stylesheets.
- $cfg[SQP]['fmtColor'] array of string tuples
- This array is used to define the colours for each type of element of the
- pretty-printed SQL queries. The tuple format is
- class => [HTML colour code | empty string]
- If you specify an empty string for the color of a class, it is ignored in
- creating the stylesheet. You should not alter the class names, only the
- colour strings.
- Class name key:
- + comment Applies to all comment sub-classes
- + comment_mysql Comments as "#...\n"
- + comment_ansi Comments as "-- ...\n"
- + comment_c Comments as "/*...*/"
- + digit Applies to all digit sub-classes
- + digit_hex Hexadecimal numbers
- + digit_integer Integer numbers
- + digit_float Floating point numbers
- + punct Applies to all punctuation sub-classes
- + punct_bracket_open_round Opening brackets"("
- + punct_bracket_close_round Closing brackets ")"
- + punct_listsep List item Separator ","
- + punct_qualifier Table/Column Qualifier "."
- + punct_queryend End of query marker ";"
- + alpha Applies to all alphabetic classes
- + alpha_columnType Identifiers matching a column type
- + alpha_columnAttrib Identifiers matching a database/table/column
- attribute
- + alpha_functionName Identifiers matching a MySQL function name
- + alpha_reservedWord Identifiers matching any other reserved word
- + alpha_variable Identifiers matching a SQL variable "@foo"
- + alpha_identifier All other identifiers
- + quote Applies to all quotation mark classes
- + quote_double Double quotes "
- + quote_single Single quotes '
- + quote_backtick Backtick quotes `
- $cfg[SQLValidator]['use'] boolean
- phpMyAdmin now supports use of the Mimer SQL Validator service, as
- originally published on Slashdot.
- For help in setting up your system to use the service, see the FAQ #6.14.
- $cfg[SQLValidator]['username'] string
- $cfg[SQLValidator]['password'] string
- The SOAP service allows you to login with anonymous and any password, so we
- use those by default. Instead, if you have an account with them, you can
- put your login details here, and it will be used in place of the anonymous
- login.
- $cfg[DBG]['enable'] boolean
- DEVELOPERS ONLY!
- Enable the DBG extension for debugging phpMyAdmin. Required for profiling
- the code.
- For help in setting up your system to this, see the Developers section.
- $cfg[DBG]['profile']['enable'] boolean
- DEVELOPERS ONLY!
- Enable profiling support for phpMyAdmin. This will append a chunk of data
- to the end of every page displayed in the main window with profiling
- statistics for that page.
- You may need to increase the maximum execution time for this to complete
- successfully.
- $cfg[DBG]['profile']['threshold'] float (units in milliseconds)
- DEVELOPERS ONLY!
- When profiling data is displayed, this variable controls the threshold of
- display for any profiling data, based on the average time each time has
- taken. If it is over the threshold it is displayed, otherwise it is not
- displayed. This takes a value in milliseconds. In most cases you don't need
- to edit this.
- $cfg[ColumnTypes] array
- All possible types of a MySQL column. In most cases you don't need to edit
- this.
- $cfg[AttributeTypes] array
- Possible attributes for fields. In most cases you don't need to edit this.
- $cfg[Functions] array
- A list of functions MySQL supports. In most cases you don't need to edit
- this.
- $cfg[RestrictColumnTypes] array
- Mapping of column types to meta types used for preferring displayed
- functions. In most cases you don't need to edit this.
- $cfg[RestrictFunctions] array
- Functions preferred for column meta types as defined in $cfg
- ['RestrictColumnTypes']. In most cases you don't need to edit this.
- $cfg[DefaultFunctions] array
- Functions selected by default when inserting/changing row, Functions are
- defined for meta types from $cfg['RestrictColumnTypes'] and for
- first_timestamp, which is used for first timestamp column in table.
- $cfg[NumOperators] array
- Operators available for search operations on numeric and date fields.
- $cfg[TextOperators] array
- Operators available for search operations on character fields. Note that we
- put LIKE by default instead of LIKE %...%, to avoid unintended performance
- problems in case of huge tables.
- $cfg[EnumOperators] array
- Operators available for search operations on enum fields.
- $cfg[NullOperators] array
- Additional operators available for search operations when the field can be
- null.
-
-
- Transformations
-
- Introduction - Usage - File structure
-
-
- [1. Introduction]
-
- To enable transformations, you have to setup the column_info table and the
- proper directives. Please see the Configuration section on how to do so.
-
-
- You can apply different transformations to the contents of each field. The
- transformation will take the content of each field and transform it with
- certain rules defined in the selected transformation.
-
-
- Say you have a field 'filename' which contains a filename. Normally you would
- see in phpMyAdmin only this filename. Using transformations you can transform
- that filename into a HTML link, so you can click inside of the phpMyAdmin
- structure on the field's link and will see the file displayed in a new browser
- window. Using transformation options you can also specify strings to append/
- prepend to a string or the format you want the output stored in.
-
-
- For a general overview of all available transformations and their options, you
- can consult your <www.your-host.com>/<your-install-dir>/
- transformation_overview.php installation.
-
-
- For a tutorial on how to effectively use transformations, see our Link section
- on the official phpMyAdmin homepage.
-
-
- [2. Usage]
-
- Go to your tbl_properties_structure.php page (i.e. reached through clicking on
- the 'Structure' link for a table). There click on "Change" (or change icon) and
- there you will see three new fields at the end of the line. They are called
- 'MIME-type', 'Browser transformation' and 'Transformation options'.
-
- * The field 'MIME-type' is a dropdown field. You have the options to leave
- that field empty or to use 'auto' [this feature is not yet available].
- Please note that transformations are inactive as long as no MIME-type is
- selected.
- * The field 'Browser transformation' is a drop-down field. You can choose
- from a hopefully growing amount of pre-defined transformations. See below
- for information on how to build your own transformation.
- There are global transformations and mimetype-bound transformations. Global
- transformations can be used for any mimetype. They will take the mimetype,
- if necessary, into regard. Mimetype-bound transformations usually only
- operate on a certain mimetype. There are transformations which operate on
- the main mimetype (like 'image'), which will most likely take the subtype
- into regard, and those who only operate on a specific subtype (like 'image/
- jpeg').
- You can use transformations on mimetypes for which the function was not
- defined for. There is no security check for you selected the right
- transformation, so take care of what the output will be like.
- * The field 'Transformation options' is a free-type textfield. You have to
- enter transform-function specific options here. Usually the transforms can
- operate with default options, but it is generally a good idea to look up
- the overview to see which options are necessary.
- Much like the ENUM/SET-Fields, you have to split up several options using
- the format 'a','b','c',...(NOTE THE MISSING BLANKS). This is because
- internally the options will be parsed as an array, leaving the first value
- the first element in the array, and so forth.
- If you want to specify a MIME character set you can define it in the
- transformation_options. You have to put that outside of the pre-defined
- options of the specific mime-transform, as the last value of the set. Use
- the format "'; charset=XXX'". If you use a transform, for which you can
- specify 2 options and you want to append a character set, enter "'first
- parameter','second parameter','charset=us-ascii'". You can, however use the
- defaults for the parameters: "'','','charset=us-ascii'".
-
-
- [3. File structure]
-
- All mimetypes and their transformations are defined through single files in the
- directory 'libraries/transformations/'.
-
-
- They are stored in files to ease up customization and easy adding of new
- transformations.
-
-
- Because the user cannot enter own mimetypes, it is kept sure that
- transformations always work. It makes no sense to apply a transformation to a
- mimetype, the transform-function doesn't know to handle.
-
-
- One can, however, use empty mime-types and global transformations which should
- work for many mimetypes. You can also use transforms on a different mimetype
- they where built for, but pay attention to option usage as well as what the
- transformation does to your field.
-
-
- There is a basic file called 'global.inc.php'. This function can be included by
- any other transform function and provides some basic functions.
-
-
- There are 5 possible file names:
-
- 1. A mimetype+subtype transform:
-
- [mimetype]_[subtype]__[transform].inc.php
-
- Please not that mimetype and subtype are separated via '_', which shall not
- be contained in their names. The transform function/filename may contain
- only characters which cause no problems in the file system as well as the
- PHP function naming convention.
-
- The transform function will the be called 'PMA_transform_[mimetype]_
- [subtype]__[transform]()'.
-
- Example:
-
- text_html__formatted.inc.php
- PMA_transform_text_html__formatted()
- 2. A mimetype (w/o subtype) transform:
-
- [mimetype]__[transform].inc.php
-
- Please note that there are no single '_' characters. The transform function
- /filename may contain only characters which cause no problems in the file
- system as well as the PHP function naming convention.
-
- The transform function will the be called 'PMA_transform_[mimetype]__
- [transform]()'.
-
- Example:
-
- text__formatted.inc.php
- PMA_transform_text__formatted()
- 3. A mimetype+subtype without specific transform function
-
- [mimetype]_[subtype].inc.php
-
- Please note that there are no '__' characters in the filename. Do not use
- special characters in the filename causing problems with the file system.
-
- No transformation function is defined in the file itself.
-
- Example:
-
- text_plain.inc.php
- (No function)
- 4. A mimetype (w/o subtype) without specific transform function
-
- [mimetype].inc.php
-
- Please note that there are no '_' characters in the filename. Do not use
- special characters in the filename causing problems with the file system.
-
- No transformation function is defined in the file itself.
-
- Example:
-
- text.inc.php
- (No function)
- 5. A global transform function with no specific mimetype
-
- global__[transform].inc.php
-
- The transform function will the be called 'PMA_transform_global__
- [transform]()'.
-
- Example:
-
- global__formatted
- PMA_transform_global__formatted()
-
-
- So generally use '_' to split up mimetype and subtype, and '__' to provide a
- transform function.
-
-
- All filenames containing no '__' in themselves are not shown as valid transform
- functions in the dropdown.
-
-
- Please see the libraries/transformations/TEMPLATE file for adding your own
- transform function. See the libraries/transformations/TEMPLATE_MIMETYPE for
- adding a mimetype without a transform function. Also note the introduction of a
- function description in the language files. For each function a
- $strTransformation_[filename without .inc.php] has to exist.
-
-
- You can use the template generator to generate new functions and entries in the
- language file.
-
-
- To create a new transform function please see libraries/transformations/
- template_generator.sh. To create a new, empty mimetype please see libraries/
- transformations/template_generator_mimetype.sh.
-
-
- A transform function always gets passed three variables:
-
- 1. $buffer - Contains the text inside of the column. This is the text, you
- want to transform.
- 2. $options - Contains any user-passed options to a transform function as an
- array.
- 3. $meta - Contains an object with field information to your column. The data
- is drawn from the output of the mysql_fetch_field() function. This means,
- all object properties described on the manual page are available in this
- variable and can be used to transform a field accordingly to unsigned/
- zerofill/not_null/... properties.
- The $meta->mimetype variable contains the original MIME-type of the field
- (i.e. 'text/plain', 'image/jpeg' etc.)
-
-
- FAQ - Frequently Asked Questions
-
- Server - Configuration - Limitations - Multi-user - Browsers - Usage
- tips - Project - Security
-
-
- Please have a look at our Link section on the official phpMyAdmin homepage for
- in-depth coverage of phpMyAdmin's features and/or interface.
-
-
- [1. Server]
-
- [1.1] I'm running PHP 4+ and my server is crashing each time a specific action
- is required or phpMyAdmin sends a blank page or a page full of cryptic
- characters to my browser, what can I do?
-
- There are some known PHP bugs with output buffering and compression.
- Try to set the $cfg['OBGzip'] directive to FALSE in your config.inc.php file
- and the zlib.output_compression directive to Off in your php configuration
- file.
- Furthermore, we know about such problems connected to the release candidates of
- PHP 4.2.0 (tested with PHP 4.2.0 RC1 to RC4) together with MS Internet
- Explorer. Please upgrade to the release version PHP 4.2.0.
-
- [1.2] My Apache server crashes when using phpMyAdmin.
-
- You should first try the latest versions of Apache (and possibly MySQL).
- See also the FAQ 1.1 entry about PHP bugs with output buffering.
- If your server keeps crashing, please ask for help in the various Apache
- support groups.
-
- [1.3] I'm running phpMyAdmin with "cookie" authentication mode under PHP 4.2.0
- or 4.2.1 loaded as an Apache 2+ module but can't enter the script: I'm always
- displayed the login screen.
-
- This is a known PHP bug (see this bug report) from the official PHP bug
- database. It means there is and won't be any phpMyAdmin fix against it because
- there is no way to code a fix.
-
- [1.4] Using phpMyAdmin on IIS, I'm displayed the error message: "The specified
- CGI application misbehaved by not returning a complete set of HTTP headers...".
-
- You just forgot to read the install.txt file from the php distribution. Have a
- look at the last message in this bug report from the official PHP bug database.
-
- [1.5] Using phpMyAdmin on IIS, I'm facing crashes and/or many error messages
- with the HTTP or advanced authentication mode.
-
- This is a known problem with the PHP ISAPI filter: it's not so stable. Please
- use instead the cookie authentication mode.
-
- [1.6] I can't use phpMyAdmin on PWS: nothing is displayed!
-
- This seems to be a PWS bug. Filippo Simoncini found a workaround (at this time
- there is no better fix): remove or comment the DOCTYPE declarations (2 lines)
- from the scripts libraries/header.inc.php, libraries/header_printview.inc.php,
- index.php, left.php and libraries/common.lib.php.
-
- [1.7] How can I GZip or Bzip a dump or a CSV export? It does not seem to work.
-
- These features are based on the gzencode() and bzcompress() PHP functions to be
- more independent of the platform (Unix/Windows, Safe Mode or not, and so on).
- So, you must have PHP4 >= 4.0.4 and Zlib/Bzip2 support (--with-zlib and
- --with-bz2).
- We faced PHP crashes when trying to download a dump with MS Internet Explorer
- when phpMyAdmin is run with a release candidate of PHP 4.2.0. In this case you
- should switch to the release version of PHP 4.2.0.
-
- [1.8] I cannot insert a text file in a table, and I get an error about safe
- mode being in effect.
-
- Your uploaded file is saved by PHP in the "upload dir", as defined in php.ini
- by the variable upload_tmp_dir (usually the system default is /tmp).
- We recommend the following setup for Apache servers running in safe mode, to
- enable uploads of files while being reasonably secure:
-
- * create a separate directory for uploads: mkdir /tmp/php
- * give ownership to the Apache server's user.group: chown apache.apache /tmp/
- php
- * give proper permission: chmod 600 /tmp/php
- * put upload_tmp_dir = /tmp/php in php.ini
- * restart Apache
-
- [1.9] I'm having troubles when uploading files. In general file uploads don't
- work on my system and uploaded files have a Content-Type: header in the first
- line.
-
- It's not really phpMyAdmin related but RedHat 7.0. You have a RedHat 7.0 and
- you updated your PHP RPM to php-4.0.4pl1-3.i386.rpm, didn't you?
- So the problem is that this package has a serious bug that was corrected ages
- ago in PHP (2001-01-28: see PHP's bug tracking system for more details). The
- problem is that the bugged package is still available though it was corrected
- (see RedHat's BugZilla for more details).
- So please download the fixed package (4.0.4pl1-9) and the problem should go
- away.
- And that fixes the \r\n problem with file uploads!
-
- [1.10] I'm having troubles when uploading files with phpMyAdmin running on a
- secure server. My browser is Internet Explorer and I'm using the Apache server.
-
- As suggested by "Rob M" in the phpWizard forum, add this line to your
- httpd.conf:
- SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
- It seems to clear up many problems between Internet Explorer and SSL.
-
- [1.11] I get an 'open_basedir restriction' while uploading a file from the
- query box.
-
- Since version 2.2.4, phpMyAdmin supports servers with open_basedir
- restrictions. Assuming that the restriction allows you to open files in the
- current directory ('.'), all you have to do is create a 'tmp' directory under
- the phpMyAdmin install directory, with permissions 777 and the same owner as
- the owner of your phpMyAdmin directory. The uploaded files will be moved there,
- and after execution of your SQL commands, removed.
-
- [1.12] I have lost my MySQL root password, what can I do?
-
- The MySQL manual explains how to reset the permissions.
-
- [1.13] I get an error 'No SQL query' when trying to execute a bookmark.
-
- If PHP does not have read/write access to its upload_tmp_dir, it cannot access
- the uploaded query.
-
- [1.14] I get an error 'No SQL query' when trying to submit a query from the
- convenient text area.
-
- Check the post_max_size directive from your PHP configuration file and try to
- increase it.
-
- [1.15] I have problems with mysql.user field names.
-
- In older MySQL versions, the User and Password fields were named user and
- password. Please modify your field names to align with current standards.
-
- [1.16] I cannot upload big dump files (memory, http or timeout problems).
-
- Starting with version 2.7.0, the import engine has been re?written and these
- problems should not occur. If possible, upgrade your phpMyAdmin to the latest
- version to take advantage of the new import features.
-
- The first things to check (or ask your host provider to check) are the values
- of upload_max_filesize, memory_limit and post_max_size in the php.ini
- configuration file. All of these three settings limit the maximum size of data
- that can be submitted and handled by PHP. One user also said that post_max_size
- and memory_limit need to be larger than upload_max_filesize.
-
- There exist several workarounds if your upload is too big or your hosting
- provider is unwilling to change the settings:
-
- * Look at the $cfg['UploadDir'] feature. This allows one to upload a file to
- the server via scp, ftp, or your favorite file transfer method. PhpMyAdmin
- is then able to import the files from the temporary directory. More
- information is available in the Configuration section of this document.
- * Using a utility (such as BigDump) to split the files before uploading. We
- cannot support this or any third party applications, but are aware of users
- having success with it.
- * If you have shell (command line) access, use MySQL to import the files
- directly. You can do this by issuing the "source" command from within
- MySQL: source filename.sql.
-
- [1.17] Which MySQL versions does phpMyAdmin support?
-
- All MySQL versions from 3.23.32 till 5.0 (except for 4.1.0 and 4.1.1) are fully
- supported. Please note that the older your MySQL version is, the more
- limitations you will have to face.
- phpMyAdmin may connect to your MySQL server using php's classic MySQL extension
- as well as the improved MySQL extension (MySQLi) that is available in php 5.0.
- Either way, the developers of both extensions recommend to use the classic
- extension for MySQL 4.0 and below and MySQLi for MySQL 4.1 and newer.
- When compiling php, we strongly recommend that you manually link the MySQL
- extension of your choice to a MySQL client library of at least the same minor
- version since the one that is bundled with some php distributions is rather old
- and might cause problems (see also FAQ 1.17a). If your webserver is running on
- a windows system, you might want to try MySQL's Connector/PHP instead of the
- MySQL / MySQLi extensions that are bundled with the official php Win32 builds.
- MySQL 5.1 is not yet supported.
-
- [1.17a] I cannot connect to the MySQL server. It always returns the error
- message, "Client does not support authentication protocol requested by server;
- consider upgrading MySQL client"
-
- You tried to access MySQL with an old MySQL client library. The version of your
- MySQL client library can be checked in your phpinfo() output. In general, it
- should have at least the same minor version as your server - as mentioned in
- FAQ 1.17.
-
- This problem is generally caused by using MySQL version 4.1 or newer. MySQL
- changed the authentication hash and your PHP is trying to use the old method.
- The proper solution is to use the mysqli extension with the proper client
- library to match your MySQL installation. Your chosen extension is specified in
- $cfg['Servers'][$i]['extension']. More information (and several workarounds)
- are located in the MySQL Documentation.
-
- [1.18] I'm running MySQL <= 4.0.1 having lower_case_table_names set to 1. If I
- create a new table with a capital letter in its name it is changed to lowercase
- as it should. But if I try to DROP this table MySQL is unable to find the
- corresponding file.
-
- This is a bug of MySQL <= 4.0.1. Please upgrade to at least MySQL 4.0.2 or turn
- off your lower_case_table_names directive.
-
- [1.19] I can't run the "display relations" feature because the script seems not
- to know the font face I'm using!
-
- The "FPDF" library we're using for this feature requires some special files to
- use font faces.
- Please refers to the FPDF manual to build these files.
-
- [1.20] I receive the error "cannot load MySQL extension, please check PHP
- Configuration".
-
- To connect to a MySQL server, PHP needs a set of MySQL functions called "MySQL
- extension". This extension may be part of the PHP distribution (compiled-in),
- otherwise it needs to be loaded dynamically. Its name is probably mysql.so or
- php_mysql.dll. phpMyAdmin tried to load the extension but failed.
-
- Usually, the problem is solved by installing a software package called
- "PHP-MySQL" or something similar.
-
- [1.21] I am running the CGI version of PHP under Unix, and I cannot login using
- cookie auth.
-
- In php.ini, set mysql.max_links higher than 1.
-
- [1.22] I don't see the "Location of text file" field, so I cannot upload.
-
- This is most likely because in php.ini, your file_uploads parameter is not set
- to "on".
-
- [1.23] I'm running MySQL on a Win32 machine. Each time I create a new table the
- table and field names are changed to lowercase!
-
- This happens because the MySQL directive lower_case_table_names defaults to 1
- (ON) in the Win32 version of MySQL. You can change this behavior by simply
- changing the directive to 0 (OFF):
- Just edit your my.ini file that should be located in your Windows directory and
- add the following line to the group [mysqld]:
- set-variable = lower_case_table_names=0
- Next, save the file and restart the MySQL service. You can always check the
- value of this directive using the query
- SHOW VARIABLES LIKE 'lower_case_table_names';
-
- [1.24] Some characters are being truncated in my queries, or I get characters
- randomly added. I am running PHP 4.2.3.
-
- This is a PHP 4.2.3 bug.
-
- [1.25] I am running Apache with mod_gzip-1.3.26.1a on Windows XP, and I get
- problems, such as undefined variables when I run a SQL query.
-
- A tip from Jose Fandos: put a comment on the following two lines in httpd.conf,
- like this:
- # mod_gzip_item_include file \.php$
- # mod_gzip_item_include mime "application/x-httpd-php.*"
- as this version of mod_gzip on Apache (Windows) has problems handling PHP
- scripts. Of course you have to restart Apache.
-
- [1.26] I just installed phpMyAdmin in my document root of IIS but I get the
- error "No input file specified" when trying to run phpMyAdmin.
-
- This is a permission problem. Right-click on the phpmyadmin folder and choose
- properties. Under the tab Security, click on "Add" and select the user
- "IUSR_machine" from the list. Now set his permissions and it should work.
-
- [1.27] I get empty page when I want to view huge page (eg.
- db_details_structure.php with plenty of tables).
-
- This is a PHP bug that occur when GZIP output buffering is enabled. If you turn
- off it (by $cfg['OBGzip'] = FALSE in config.inc.php), it should work. This bug
- will be fixed in PHP 5.0.0.
-
- [1.28] My MySQL server sometimes refuses queries and returns the message
- 'Errorcode: 13'. What does this mean?
-
- This can happen due to a MySQL bug when having database / table names with
- upper case characters although lower_case_table_names is set to 1. To fix this,
- turn off this directive, convert all database and table names to lower case and
- turn it on again. Alternatively, there's a bug-fix available starting with
- MySQL 3.23.56 / 4.0.11-gamma.
-
- [1.29] When I create a table or modify a field, I get an error and the fields
- are duplicated.
-
- It is possible to configure Apache in such a way that PHP has problems
- interpreting .php files.
-
- The problems occur when two different (and conflicting) set of directives are
- used:
-
- SetOutputFilter PHP
- SetInputFilter PHP
- &
- AddType application/x-httpd-php .php
-
- In the case we saw, one set of directives was in /etc/httpd/conf/httpd.conf,
- while the other set was in /etc/httpd/conf/addon-modules/php.conf.
- The recommended way is with AddType, so just comment out the first set of lines
- and restart Apache:
-
- #SetOutputFilter PHP
- #SetInputFilter PHP
-
- [1.30] I get the error "left.php: Missing hash".
-
- This problem is known to happen when the server is running Turck MMCache but
- upgrading MMCache to version 2.3.21 solves the problem.
-
- [1.31] Does phpMyAdmin support php5?
-
- Yes.
- However, phpMyAdmin needs to be backwards compatible to php4. This is why
- phpMyAdmin disables the E_STRICT error_level in error_reporting settings.
-
- [1.32] Can I use HTTP authentication with IIS?
-
- Yes. This procedure was tested with phpMyAdmin 2.6.1, PHP 4.3.9 in ISAPI mode
- under IIS 5.1.
-
- 1. In your php.ini file, set cgi.rfc2616_headers = 0
- 2. In Web Site Properties -> File/Directory Security -> Anonymous Access
- dialog box, check the Anonymous access checkbox and uncheck any other
- checkboxes (i.e. uncheck Basic authentication, Integrated Windows
- authentication, and Digest if it's enabled.) Click OK.
- 3. In Custom Errors, select the range of 401;1 through 401;5 and click the Set
- to Default button.
-
- [1.33] Is there a problem with the mysqli extension when running PHP 5.0.4 on
- 64-bit systems?
-
- Yes. This problem affects phpMyAdmin ("Call to undefined function
- pma_reloadnavigation"), so upgrade your PHP to the next version.
-
- [1.34] Can I access directly to database or table pages?
-
- Yes. Out of the box, you can use URLs like http://server/phpMyAdmin/index.php?
- db=database&table=table&target=script. Table and script parts are optional. If
- you want http://server/phpMyAdmin/database[/table][/script] URLs, you need to
- do some configuration. Following lines apply only for Apache web server. First
- make sure, that you have enabled some features within global configuration. You
- need Options FollowSymLinks and AllowOverride FileInfo enabled for directory
- where phpMyAdmin is installed and you need mod_rewrite to be enabled. Then you
- just need to create following .htaccess file in root folder of phpMyAdmin
- installation (don't forget to change directory name inside of it):
-
- RewriteEngine On
- RewriteBase /path_to_phpMyAdmin
- RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&table=$2&target=$3 [R]
- RewriteRule ^([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&target=$2 [R]
- RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ index.php?db=$1&table=$2 [R]
- RewriteRule ^([a-zA-Z0-9_]+)$ index.php?db=$1 [R]
-
- [1.35] Can I use HTTP authentication with Apache CGI?
-
- Yes. However you need to pass authentication variable to CGI using following
- rewrite rule:
-
- RewriteEngine On
- RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
-
- [1.36] I get an error "500 Internal Server Error".
-
- There can be many explanations to this and a look at your server's error log
- file might give a clue.
-
-
- [2. Configuration]
-
- [2.1] The error message "Warning: Cannot add header information - headers
- already sent by ..." is displayed, what's the problem?
-
- Edit your config.inc.php file and ensure there is nothing (I.E. no blank lines,
- no spaces, no characters...) neither before the <?php tag at the beginning,
- neither after the ?> tag at the end.
-
- [2.2] phpMyAdmin can't connect to MySQL. What's wrong?
-
- Either there is an error with your PHP setup or your username/password is
- wrong. Try to make a small script which uses mysql_connect and see if it works.
- If it doesn't, it may be you haven't even compiled MySQL support into PHP.
-
- [2.3] The error message "Warning: MySQL Connection Failed: Can't connect to
- local MySQL server through socket '/tmp/mysql.sock' (111)..." is displayed.
- What can I do?
-
-
- For RedHat users, Harald Legner suggests this on the mailing list:
-
- On my RedHat-Box the socket of MySQL is /var/lib/mysql/mysql.sock. In your
- php.ini you will find a line
- mysql.default_socket = /tmp/mysql.sock
- change it to
- mysql.default_socket = /var/lib/mysql/mysql.sock
- Then restart apache and it will work.
-
- Here is a fix suggested by Brad Ummer:
-
- * First, you need to determine what socket is being used by MySQL.
- To do this, telnet to your server and go to the MySQL bin directory. In
- this directory there should be a file named mysqladmin. Type ./mysqladmin
- variables, and this should give you a bunch of info about your MySQL
- server, including the socket (/tmp/mysql.sock, for example).
- * Then, you need to tell PHP to use this socket.
- To do this in phpMyAdmin, you need to complete the socket information in
- the config.inc.php.
- For example: $cfg['Servers'][$i]['socket'] = '/tmp/mysql.sock';
-
- Please also make sure that the permissions of this file allow to be
- readable by your webserver (i.e. '0755').
-
- Have also a look at the corresponding section of the MySQL documentation.
-
- [2.4] Nothing is displayed by my browser when I try to run phpMyAdmin, what can
- I do?
-
- Try to set the $cfg['OBGZip'] directive to FALSE in the phpMyAdmin
- configuration file. It helps sometime.
- Also have a look at your PHP version number: if it contains "4.0b..." it means
- you're running a beta version of PHP. That's not a so good idea, please upgrade
- to a plain revision.
-
- [2.5] Each time I want to insert or change a record or drop a database or a
- table, an error 404 (page not found) is displayed or, with HTTP or cookie
- authentication, I'm asked to login again. What's wrong?
-
- Check the value you set for the $cfg['PmaAbsoluteUri'] directive in the
- phpMyAdmin configuration file.
-
- [2.6] I get an "Access denied for user: 'root@localhost' (Using password: YES)
- "-error when trying to access a MySQL-Server on a host which is port-forwarded
- for my localhost.
-
- When you are using a port on your localhost, which you redirect via
- port-forwarding to another host, MySQL is not resolving the localhost as
- expected.
- Erik Wasser explains: The solution is: if your host is "localhost" MySQL (the
- commandline tool 'mysql' as well) always tries to use the socket connection for
- speeding up things. And that doesn't work in this configuration with port
- forwarding.
- If you enter "127.0.0.1" as hostname, everything is right and MySQL uses the
- TCP connection.
-
- [2.7] Using and creating themes
-
- Themes are configured with $cfg['ThemePath'], $cfg['ThemeManager'] and $cfg
- ['ThemeDefault'].
-
- Under $cfg['ThemePath'], you should not delete the directory "original" or its
- underlying structure, because this is the system theme used by phpMyAdmin.
- "original" contains all images and styles, for backwards compatibility and for
- all themes that would not include images or css-files.
-
- If $cfg['ThemeManager'] is enabled, you can select your favorite theme on the
- main page. Your selected theme will be stored in a cookie.
-
-
- To create a theme:
-
- * make a new subdirectory (for example "your_theme_name") under $cfg
- ['ThemePath'] (by default themes)
- * copy the files and directories from "original" to "your_theme_name"
- * edit the css-files in "your_theme_name/css"
- * put your new images in "your_theme_name/img"
- * edit layout.inc.php in "your_theme_name"
- * edit info.inc.php in "your_theme_name" to contain your chosen theme name,
- that will be visible in user interface
- * make a new screenshot of your theme and save it under "your_theme_name/
- screen.png"
-
- In theme directory there is file info.inc.php which contains theme verbose
- name, theme generation and theme version. These versions and generations are
- enumerated from 1 and do not have any direct dependence on phpMyAdmin version.
- Themes within same generation should be backwards compatible - theme with
- version 2 should work in phpMyAdmin requiring version 1. Themes with different
- generation are incompatible.
-
- If you do not want to use your own symbols and buttons, remove the directory
- "img" in "your_theme_name". phpMyAdmin will use the default icons and buttons
- (from the system-theme "original").
-
- [2.8] I get "Missing parameters" errors, what can I do?
-
- Here are a few points to check:
-
- * In config.inc.php, try to leave the $cfg['PmaAbsoluteUri']directive empty.
- See also FAQ 4.7.
- * Maybe you have a broken PHP installation or you need to upgrade your Zend
- Optimizer. See http://bugs.php.net/bug.php?id=31134.
- * If you are using Hardened PHP with the ini directive
- varfilter.max_request_variables set to the default (200) or another low
- value, you could get this error if your table has a high number of columns.
- Adjust this setting accordingly. (Thanks to Klaus Dorninger for the hint).
- * In the php.ini directive arg_separator.input, a value of ";" will cause
- this error. Replace it with "&;".
-
-
- [3. Known limitations]
-
- [3.1] When using HTTP authentication, an user who logged out can not relogin in
- with the same nick.
-
- This is related to the authentication mechanism (protocol) used by phpMyAdmin.
- To bypass this problem: just close all the opened browser windows and then go
- back to phpMyAdmin. You should be able to log in again.
-
- [3.2] When dumping a large table in compressed mode, I get a memory limit error
- or a time limit error.
-
- Compressed dumps are built in memory and because of this are limited to php's
- memory limit. For GZip/BZip2 exports this can be overcome since 2.5.4 using
- $cfg['CompressOnFly'] (enabled by default). Zip exports can not be handled this
- way, so if you need Zip files for larger dump, you have to use another way.
-
- [3.3] With InnoDB tables, I lose foreign key relationships when I rename or
- alter a table.
-
- This seems to be a InnoDB bug (fixed in MySQL 3.23.50?).
-
- [3.4] I am unable to import dumps I created with the mysqldump tool bundled
- with the MySQL server distribution.
-
- The problem is that mysqldump creates invalid comments like this:
-
- -- MySQL dump 8.22
- --
- -- Host: localhost Database: database
- ---------------------------------------------------------
- -- Server version 3.23.54
-
- The invalid part of the code is the horizontal line made of dashes that appears
- once in every dump created with mysqldump. If you want to run your dump you
- have to turn it into valid MySQL. This means, you have to add a whitespace
- after the first two dashes of the line or add a # before it:
- -- -------------------------------------------------------
- or
- #---------------------------------------------------------
-
- [3.5] When using nested folders ($cfg['LeftFrameTableSeparator']) there are
- some multiple hierarchies displayed in a wrong manner?!
-
- Please note that you should not use the separating string multiple times
- without any characters between them, or at the beginning/end of your table
- name. If you have to, think about using another TableSeparator or disabling
- that feature
-
- [3.6] What is currently not supported in phpMyAdmin about InnoDB?
-
- In Relation view, being able to choose a table in another database, or having
- more than one index field in the foreign key.
-
- In Query-by-example (Query), automatic generation of the query LEFT JOIN from
- the foreign table.
-
- In PDF schema editing, automatic layout.
-
- [3.7] I have table with many (100+) fields and when I try to browse table I get
- series of errors like "Warning: unable to parse url". How can this be fixed?
-
- Your table neither have a primary key nor an unique one, so we must use a long
- expression to identify this row. This causes problems to parse_url function.
- The workaround is to create a primary or unique key.
-
- [3.8] I cannot use (clickable) HTML-forms in fields where I put a
- MIME-Transformation onto!
-
- Due to a surrounding form-container (for multi-row delete checkboxes), no
- nested forms can be put inside the table where phpMyAdmin displays the results.
- You can, however, use any form inside of a table if keep the parent
- form-container with the target to tbl_row_delete.php and just put your own
- input-elements inside. If you use a custom submit input field, the form will
- submit itself to the displaying page again, where you can validate the
- $HTTP_POST_VARS in a transformation. For a tutorial on how to effectively use
- transformations, see our Link section on the official phpMyAdmin-homepage.
-
- [3.9] I get error messages when using "--sql_mode=ANSI" for the MySQL server
-
- When MySQL is running in ANSI-compatibility mode, there are some major
- differences in how SQL is structured (see http://dev.mysql.com/doc/mysql/en/
- ANSI_mode.html). Most important of all, the quote-character (") is interpreted
- as an identifier quote character and not as a string quote character, which
- makes many internal phpMyAdmin operations into invalid SQL statements. There is
- no workaround to this behaviour. News to this item will be posted in Bug report
- #816858
-
- [3.10] Homonyms and no primary key: When the results of a SELECT display more
- that one column with the same value (for example SELECT lastname from employees
- where firstname like 'A%' and two "Smith" values are displayed), if I click
- Edit I cannot be sure that I am editing the intended row.
-
- Please make sure that your table has a primary key, so that phpMyAdmin can use
- it for the Edit and Delete links.
-
- [3.11] The number of records for InnoDB tables is not correct.
-
- phpMyAdmin uses a quick method to get the row count, and this method only
- returns an approximate count in the case of InnoDB tables. See $cfg
- ['MaxExactCount'] for a way to modify those results, but this could have a
- serious impact on performance.
-
- [3.12] What are the phpMyAdmin limitations for MySQL 3?
-
- The number of records in queries containing COUNT and GROUP BY is not correctly
- calculated. Also, sorting results of a query like "SELECT * from table GROUP
- BY" ... is problematic.
-
- [3.13] I get an error when entering USE followed by a db name containing an
- hyphen.
-
- The tests I have made with current MySQL 4.1.11 API shows that the API does not
- accept this syntax for the USE command. Enclosing the db name with backquotes
- works. For further confusion, no backquotes are needed with command-line mysql.
-
-
- [4. ISPs, multi-user installations ]
-
- [4.1] I'm an ISP. Can I setup one central copy of phpMyAdmin or do I need to
- install it for each customer.
-
- Since version 2.0.3, you can setup a central copy of phpMyAdmin for all your
- users. The development of this feature was kindly sponsored by NetCologne GmbH.
- This requires a properly setup MySQL user management and phpMyAdmin HTTP or
- cookie authentication. See the install section on "Using HTTP authentication".
-
- [4.2] What's the preferred way of making phpMyAdmin secure against evil access.
-
- This depends on your system.
- If you're running a server which cannot be accessed by other people, it's
- sufficient to use the directory protection bundled with your webserver (with
- Apache you can use .htaccess files, for example).
- If other people have telnet access to your server, you should use phpMyAdmin's
- HTTP or cookie authentication features.
-
- Suggestions:
-
- * Your config.inc.php file should be chmod 660.
- * All your phpMyAdmin files should be chown -R phpmy.apache, where phpmy is a
- user whose password is only known to you, and apache is the group under
- which Apache runs.
- * You should use PHP safe mode, to protect from other users that try to
- include your config.inc.php in their scripts.
-
- [4.3] I get errors about not being able to include a file in /lang or in /
- libraries.
-
- Check php.ini, or ask your sysadmin to check it. The include_path must contain
- "." somewhere in it, and open_basedir, if used, must contain "." and "./lang"
- to allow normal operation of phpMyAdmin.
-
- [4.4] phpMyAdmin always gives "Access denied" when using HTTP authentication.
-
- This could happen for several reasons:
-
- * $cfg['Servers'][$i]['controluser'] and/or $cfg['Servers'][$i]
- ['controlpass'] are wrong.
- * The username/password you specify in the login-dialog are invalid.
- * You have already setup a security mechanism for the phpMyAdmin-directory,
- eg. a .htaccess file. This would interfere with phpMyAdmin's
- authentication, so remove it.
-
- [4.5] Is it possible to let users create their own databases?
-
- Starting with 2.2.5, in the user management page, you can enter a wildcard
- database name for a user (for example "joe%"), and put the privileges you want.
- For example, adding SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER
- would let a user create/manage his/her database(s).
-
- [4.6] How can I use the Host-based authentication additions?
-
- If you have existing rules from an old .htaccess file, you can take them and
- add a username between the 'deny'/'allow' and 'from' strings. Using the
- username wildcard of '%' would be a major benefit here if your installation is
- suited to using it. Then you can just add those updated lines into the $cfg
- ['Servers'][$i]['AllowDeny']['rules'] array.
-
- If you want a pre-made sample, you can try this fragment. It stops the 'root'
- user from logging in from any networks other than the private network IP
- blocks.
- //block root from logging in except from the private networks
- $cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow';
- $cfg['Servers'][$i]['AllowDeny']['rules'] = array(
- 'deny root from all',
- 'allow root from localhost',
- 'allow root from 10.0.0.0/8',
- 'allow root from 192.168.0.0/16',
- 'allow root from 172.16.0.0/12',
- );
-
- [4.7] Authentication window is displayed more than once, why?
-
- This happens if you are using a URL to start phpMyAdmin which is different than
- the one set in your $cfg['PmaAbsoluteUri']. For example, a missing "www", or
- entering with an IP address while a domain name is defined in the config file.
-
-
- [5. Browsers or client OS]
-
- [5.1] I get an out of memory error, and my controls are non-functional, when
- trying to create a table with more than 14 fields.
-
- We could reproduce this problem only under Win98/98SE. Testing under WinNT4 or
- Win2K, we could easily create more than 60 fields.
- A workaround is to create a smaller number of fields, then come back to your
- table properties and add the other fields.
-
- [5.2] With Xitami 2.5b4, phpMyAdmin won't process form fields.
-
- This is not a phpMyAdmin problem but a Xitami known bug: you'll face it with
- each script/website that use forms.
- Upgrade or downgrade your Xitami server.
-
- [5.3] I have problems dumping tables with Konqueror (phpMyAdmin 2.2.2).
-
- With Konqueror 2.1.1: plain dumps, zip and GZip dumps work ok, except that the
- proposed file name for the dump is always 'tbl_dump.php'. Bzip2 dumps don't
- seem to work.
- With Konqueror 2.2.1: plain dumps work; zip dumps are placed into the user's
- temporary directory, so they must be moved before closing Konqueror, or else
- they disappear. GZip dumps give an error message.
- Testing needs to be done for Konqueror 2.2.2.
-
- [5.4] I can't use the cookie authentication mode because Internet Explorer
- never stores the cookies.
-
- MS Internet Explorer seems to be really buggy about cookies, at least till
- version 6. And thanks to Andrew Zivolup we've traced also a PHP 4.1.1 bug in
- this area!
- Then, if you're running PHP 4.1.1, try to upgrade or downgrade... it may work!
-
- [5.5] In Internet Explorer 5.0, I get JavaScript errors when browsing my rows.
-
- Upgrade to at least Internet Explorer 5.5 SP2.
-
- [5.6] In Internet Explorer 5.0, 5.5 or 6.0, I get an error (like "Page not
- found") when trying to modify a row in a table with many fields, or with a text
- field
-
- Your table neither have a primary key nor an unique one, so we must use a long
- URL to identify this row. There is a limit on the length of the URL in those
- browsers, and this not happen in Netscape, for example. The workaround is to
- create a primary or unique key, or use another browser.
-
- [5.7] I refresh (reload) my browser, and come back to the welcome page.
-
- Some browsers support right-clicking into the frame you want to refresh, just
- do this in the right frame.
-
- [5.8] With Mozilla 0.9.7 I have problems sending a query modified in the query
- box.
-
- Looks like a Mozilla bug: 0.9.6 was OK. We will keep an eye on future Mozilla
- versions.
-
- [5.9] With Mozilla 0.9.? to 1.0 and Netscape 7.0-PR1 I can't type a whitespace
- in the SQL-Query edit area: the page scrolls down.
-
- This is a Mozilla bug (see bug #26882 at BugZilla).
-
- [5.10] With Netscape 4.75 I get empty rows between each row of data in a CSV
- exported file.
-
- This is a known Netscape 4.75 bug: it adds some line feeds when exporting data
- in octet-stream mode. Since we can't detect the specific Netscape version, we
- cannot workaround this bug.
-
- [5.11] Extended-ASCII characters like German umlauts are displayed wrong.
-
- Please ensure that you have set your browser's character set to the one of the
- language file you have selected on phpMyAdmin's start page. Alternatively, you
- can try the auto detection mode that is supported by the recent versions of the
- most browsers.
-
- [5.12] Apple OS X: Safari browser changes special characters to "?".
-
- This issue has been reported by a OS X user, who adds that Chimera, Netscape
- and Mozilla do not have this problem.
-
- [5.13] With Internet Explorer 5.5 or 6, and HTTP authentication type, I cannot
- manage two servers: I login to the first one, then the other one, but if I
- switch back to the first, I have to login on each operation.
-
- This is a bug in Internet Explorer, other browsers do not behave this way.
-
- [5.14] Using Opera6, I can manage to get to the authentication, but nothing
- happens after that, only a blank screen.
-
- Having $cfg['QueryFrameJS'] set to TRUE, this leads to a bug in Opera6, because
- it is not able to interpret frameset definitions written by JavaScript. Please
- upgrade to Opera7 at least.
-
- [5.15] I have display problems with Safari.
-
- Please upgrade to at least version 1.2.3.
-
- [5.16] With Internet Explorer, I get "Access is denied" Javascript errors. Or I
- cannot make phpMyAdmin work under Windows.
-
- Please check the following points:
-
- * Maybe you have defined your PmaAbsoluteUri setting in config.inc.php to an
- IP address and you are starting phpMyAdmin with a URL containing a domain
- name, or the reverse situation.
- * Security settings in IE and/or Microsoft Security Center are too high, thus
- blocking scripts execution.
- * The Windows Firewall is blocking Apache and MySQL. You must allow http
- ports (80 or 443) and MySQL port (usually 3306) in the "in" and "out"
- directions.
-
- [5.17] With Firefox, I cannot delete rows of data or drop a database.
-
- Many users have confirmed that the Tabbrowser Extensions plugin they installed
- in their Firefox is causing the problem.
-
-
- [6. Using phpMyAdmin]
-
- [6.1] I can't insert new rows into a table / I can't create a table - MySQL
- brings up a SQL-error.
-
- Examine the SQL error with care. Often the problem is caused by specifying a
- wrong field-type.
- Common errors include:
-
- * Using VARCHAR without a size argument
- * Using TEXT or BLOB with a size argument
-
- Also, look at the syntax chapter in the MySQL manual to confirm that your
- syntax is correct.
-
- [6.2] When I create a table, I click the Index checkbox for 2 fields and
- phpMyAdmin generates only one index with those 2 fields.
-
- In phpMyAdmin 2.2.0 and 2.2.1, this is the way to create a multi-fields index.
- If you want two indexes, create the first one when creating the table, save,
- then display the table properties and click the Index link to create the other
- index.
-
- [6.3] How can I insert a null value into my table?
-
- Since version 2.2.3, you have a checkbox for each field that can be null.
- Before 2.2.3, you had to enter "null", without the quotes, as the field's
- value. Since version 2.5.5, you have to use the checkbox to get a real NULL
- value, so if you enter "NULL" this means you want a literal NULL in the field,
- and not a NULL value (this works in PHP4).
-
- [6.4] How can I backup my database or table?
-
- Click on a database or table name in the left frame, the properties will be
- displayed. Then on the menu, click "Export", you can dump the structure, the
- data, or both. This will generate standard SQL statements that can be used to
- recreate your database/table.
-
- You will need to choose "Save as file", so that phpMyAdmin can transmit the
- resulting dump to your station. Depending on your PHP configuration, you will
- see options to compress the dump. See also the $cfg['ExecTimeLimit']
- configuration variable.
-
- For additional help on this subject, look for the word "dump" in this document.
-
- [6.5] How can I restore (upload) my database or table using a dump? How can I
- run a ".sql" file?
-
- Click on a database name in the left frame, the properties will be displayed.
- Select "Import" from the list of tabs in the right?hand frame (or "SQL" if your
- phpMyAdmin version is older than 2.7.0). In the "Location of the text file"
- section, type in the path to your dump filename, or use the Browse button. Then
- click Go.
-
- With version 2.7.0, the import engine has been re?written, if possible it is
- suggested that you upgrade to take advantage of the new features.
-
- For additional help on this subject, look for the word "upload" in this
- document.
-
- [6.6] How can I use the relation table in Query-by-example?
-
- Here is an example with the tables persons, towns and countries, all located in
- the database mydb. If you don't have a pma_relation table, create it as
- explained in the configuration section. Then create the example tables:
-
- CREATE TABLE REL_countries (
- country_code char(1) NOT NULL default '',
- description varchar(10) NOT NULL default '',
- PRIMARY KEY (country_code)
- ) TYPE=MyISAM;
-
- INSERT INTO REL_countries VALUES ('C', 'Canada');
-
- CREATE TABLE REL_persons (
- id tinyint(4) NOT NULL auto_increment,
- person_name varchar(32) NOT NULL default '',
- town_code varchar(5) default '0',
- country_code char(1) NOT NULL default '',
- PRIMARY KEY (id)
- ) TYPE=MyISAM;
-
- INSERT INTO REL_persons VALUES (11, 'Marc', 'S', '');
- INSERT INTO REL_persons VALUES (15, 'Paul', 'S', 'C');
-
- CREATE TABLE REL_towns (
- town_code varchar(5) NOT NULL default '0',
- description varchar(30) NOT NULL default '',
- PRIMARY KEY (town_code)
- ) TYPE=MyISAM;
-
- INSERT INTO REL_towns VALUES ('S', 'Sherbrooke');
- INSERT INTO REL_towns VALUES ('M', 'Montre'al');
-
- To setup appropriate links and display information:
-
- * on table "REL_persons" click Structure, then Relation view
- * in Links, for "town_code" choose "REL_towns->code"
- * in Links, for "country_code" choose "REL_countries->country_code"
- * on table "REL_towns" click Structure, then Relation view
- * in "Choose field to display", choose "description"
- * repeat the two previous steps for table "REL_countries"
-
- Then test like this:
-
- * Click on your db name in the left frame
- * Choose "Query"
- * Use tables: persons, towns, countries
- * Click "Update query"
- * In the fields row, choose persons.person_name and click the "Show" tickbox
- * Do the same for towns.description and countries.descriptions in the other 2
- columns
- * Click "Update query" and you will see in the query box that the correct
- joins have been generated
- * Click "Submit query"
-
- [6.7] How can I use the "display field" feature?
-
- Starting from the previous example, create the pma_table_info as explained in
- the configuration section, then browse your persons table, and move the mouse
- over a town code or country code.
-
- See also FAQ 6.21 for an additional feature that "display field" enables:
- drop-down list of possible values.
-
- [6.8] How can I produce a PDF schema of my database?
-
- First the configuration variables "relation", "table_coords" and "pdf_pages"
- have to be filled in.
-
- Then you need to think about your schema layout. Which tables will go on which
- pages?
-
- * Select your database in the left frame.
- * Choose "Operations" in the navigation bar at the top.
- * Choose "Edit PDF Pages" near the bottom of the page.
- * Enter a name for the first PDF page and click Go. If you like, you can use
- the "automatic layout," which will put all your linked tables onto the new
- page.
- * Select the name of the new page (making sure the Edit radio button is
- selected) and click Go.
- * Select a table from the list, enter its coordinates and click Save.
- Coordinates are relative; your diagram will be automatically scaled to fit
- the page. When initially placing tables on the page, just pick any
- coordinates -- say, 50x50. After clicking Save, you can then use the
- graphical editor to position the element correctly.
- * When you'd like to look at your PDF, first be sure to click the Save button
- beneath the list of tables and coordinates, to save any changes you made
- there. Then scroll all the way down, select the PDF options you want, and
- click Go.
- * Internet Explorer for Windows may suggest an incorrect filename when you
- try to save a generated PDF. When saving a generated PDF, be sure that the
- filename ends in ".pdf", for example "schema.pdf". Browsers on other
- operating systems, and other browsers on Windows, do not have this problem.
-
- [6.9] phpMyAdmin is changing the type of one of my columns!
-
- No, it's MySQL that is doing silent column type changing.
-
- [6.10] When creating a privilege, what happens with underscores in the database
- name?
-
- If you do not put a backslash before the underscore, this is a wildcard grant,
- and the underscore means "any character". So, if the database name is
- "john_db", the user would get rights to john1db, john2db...
-
- If you put a backslash before the underscore, it means that the database name
- will have a real underscore.
-
- [6.11] What is the curious symbol o/ in the statistics pages?
-
- It means "average".
-
- [6.12] I want to understand some Export options.
-
- Structure:
-
- * "Add DROP TABLE" will add a line telling MySQL to drop the table, if it
- already exists during the import. It does NOT drop the table after your
- export, it only affects the import file.
- * "If Not Exists" will only create the table if it doesn't exist. Otherwise,
- you may get an error if the table name exists but has a different
- structure.
- * "Add AUTO_INCREMENT value" ensures that AUTO_INCREMENT value (if any) will
- be included in backup.
- * "Enclose table and field names with backquotes" ensures that field and
- table names formed with special characters are protected.
- * "Add into comments" includes column comments, relations, and MIME types set
- in the pmadb in the dump as SQL comments (/* xxx */).
-
- Data:
-
- * "Complete inserts" adds the column names on every INSERT command, for
- better documentation (but resulting file is bigger).
- * "Extended inserts" provides a shorter dump file by using only once the
- INSERT verb and the table name.
- * "Delayed inserts" are best explained in the MySQL manual.
- * "Ignore inserts" treats errors as a warning instead. Again, more info is
- provided in the MySQL manual, but basically with this selected, invalid
- values are adjusted and inserted rather than causing the entire statement
- to fail.
-
- [6.13] I would like to create a database with a dot in its name.
-
- This is a bad idea, because in MySQL the syntax "database.table" is the normal
- way to reference a database and table name. Worse, MySQL will usually let you
- create a database with a dot, but then you cannot work with it, nor delete it.
-
- [6.14] How do I set up the SQL Validator?
-
- To use it, you need a very recent version of PHP, 4.3.0 recommended, with XML,
- PCRE and PEAR support. On your system command line, run "pear install
- Net_Socket Net_URL HTTP_Request Mail_Mime Net_DIME SOAP" to get the necessary
- PEAR modules for usage.
- On a more recent pear version, I had problems with the state of Net_DIME being
- beta, so this single command "pear -d preferred_state=beta install -a SOAP"
- installed all the needed modules.
- If you use the Validator, you should be aware that any SQL statement you submit
- will be stored anonymously (database/table/column names, strings, numbers
- replaced with generic values). The Mimer SQL Validator itself, is (C) 2001
- Upright Database Technology. We utilize it as free SOAP service.
-
- [6.15] I want to add a BLOB field and put an index on it, but MySQL says "BLOB
- column '...' used in key specification without a key length".
-
- The right way to do this, is to create the field without any indexes, then
- display the table structure and use the "Create an index" dialog. On this page,
- you will be able to choose your BLOB field, and set a size to the index, which
- is the condition to create an index on a BLOB field.
-
- [6.16] How can I simply move in page with plenty editing fields?
-
- You can use Ctrl+arrows (Option+Arrows in Safari) for moving on most pages with
- many editing fields (table structure changes, row editing, etc.) (must be
- enabled in configuration - see. $cfg['CtrlArrowsMoving']). You can also have a
- look at the directive $cfg['DefaultPropDisplay'] ('vertical') and see if this
- eases up editing for you.
-
- [6.17] Transformations: I can't enter my own mimetype! WTF is this feature then
- useful for?
-
- Slow down :). Defining mimetypes is of no use, if you can't put transformations
- on them. Otherwise you could just put a comment on the field. Because entering
- your own mimetype will cause serious syntax checking issues and validation,
- this introduces a high-risk false-user-input situation. Instead you have to
- initialize mimetypes using functions or empty mimetype definitions.
- Plus, you have a whole overview of available mimetypes. Who knows all those
- mimetypes by heart so he/she can enter it at will?
-
- [6.18] Bookmarks: Where can I store bookmarks? Why can't I see any bookmarks
- below the query box? What is this variable for?
-
- Any query you have executed can be stored as a bookmark on the page where the
- results are displayed. You will find a button labeled 'Bookmark this query'
- just at the end of the page.
- As soon as you have stored a bookmark, it is related to the database you run
- the query on. You can now access a bookmark dropdown on each page, the query
- box appears on for that database.
-
- Since phpMyAdmin 2.5.0 you are also able to store variables for the bookmarks.
- Just use the string /*[VARIABLE]*/ anywhere in your query. Everything which is
- put into the value input box on the query box page will replace the string "/*
- [VARIABLE]*/" in your stored query. Just be aware of that you HAVE to create a
- valid query, otherwise your query won't be even able to be stored in the
- database.
- Also remember, that everything else inside the /*[VARIABLE]*/ string for your
- query will remain the way it is, but will be stripped of the /**/ chars. So you
- can use:
-
- /*, [VARIABLE] AS myname */
-
- which will be expanded to
-
- , VARIABLE as myname
-
- in your query, where VARIABLE is the string you entered in the input box. If an
- empty string is provided, no replacements are made.
-
- A more complex example. Say you have stored this query:
-
- SELECT Name, Address FROM addresses WHERE 1 /* AND Name LIKE '%[VARIABLE]%' */
-
- Say, you now enter "phpMyAdmin" as the variable for the stored query, the full
- query will be:
-
- SELECT Name, Address FROM addresses WHERE 1 AND Name LIKE '%phpMyAdmin%'
-
- You can use multiple occurrences of /*[VARIABLE]*/ in a single query.
- NOTE THE ABSENCE OF SPACES inside the "/**/" construct. Any spaces inserted
- there will be later also inserted as spaces in your query and may lead to
- unexpected results especially when using the variable expansion inside of a
- "LIKE ''" expression.
- Your initial query which is going to be stored as a bookmark has to yield at
- least one result row so you can store the bookmark. You may have that to work
- around using well positioned "/**/" comments.
-
- [6.19] How can I create simple LaTeX document to include exported table?
-
- You can simply include table in your LaTeX documents, minimal sample document
- should look like following one (assuming you have table exported in file
- table.tex):
-
- \documentclass{article} % or any class you want
- \usepackage{longtable} % for displaying table
- \begin{document} % start of document
- \include{table} % including exported table
- \end{document} % end of document
-
- [6.20] In MySQL 4, I see a lot of databases which are not mine, and cannot
- access them.
-
- Upgrading to MySQL 4 usually gives users those global privileges: CREATE
- TEMPORARY TABLES, SHOW DATABASES, LOCK TABLES. Those privileges also enable
- users to see all the database names. See this bug report.
-
- So if your users do not need those privileges, you can remove them and their
- databases list will shorten.
-
- [6.21] In edit/insert mode, how can I see a list of possible values for a
- field, based on some foreign table?
-
- You have to setup appropriate links between the tables, and also setup the
- "display field" in the foreign table. See FAQ 6.6 for an example. Then, if
- there are 200 values or less in the foreign table, a drop-down list of values
- will be available. You will see two lists of values, the first list containing
- the key and the display field, the second list containing the display field and
- the key. The reason for this is to be able to type the first letter of either
- the key or the display field.
-
- For 200 values or more, a distinct window will appear, to browse foreign key
- values and choose one.
-
- [6.22] Bookmarks: Can I execute a default bookmark automatically when entering
- Browse mode for a table?
-
- Yes. If a bookmark has the same label as a table name, it will be executed.
-
- [6.23] Export: I heard phpMyAdmin can export Microsoft Excel files, how can I
- enable that?
-
- Current version does support direct export to Microsoft Excel and Word versions
- 2000 and newer. If you need export older versions, you can use CSV suitable for
- Microsoft Excel, which works out of the box or you can try native experimental
- MS Excel exporter. This export has several problems, most important are
- limitation of cell content to 255 chars and no support for charsets, so think
- carefully whether you want to enable this.. For enabling this you need to set
- $cfg['TempDir'] to place where web server user can write (for example './tmp')
- and install PEAR module Spreadsheet_Excel_Writer into php include path. The
- installation can be done by following command:
-
- pear -d preferred_state=beta install -a Spreadsheet_Excel_Writer
-
- First part of switches set we want to install beta version of that module (no
- stable version available yet) and then we tell pear we want to satisfy
- dependencies.
-
- If you are running in PHP safe mode, you will have to set in php.ini the
- safe_mode_include_dir to the directory where your PEAR modules are located, for
- example:
-
- safe_mode_include_dir = /usr/local/lib/php
-
- To create the temporary directory on a UNIX-based system, you can do:
-
- cd phpMyAdmin
- mkdir tmp
- chmod o+rwx tmp
-
- [6.24] Now that phpMyAdmin supports native MySQL 4.1.x column comments, what
- happens to my column comments stored in pmadb?
-
- Automatic migration of a table's pmadb-style column comments to the native ones
- is done whenever you enter Structure page for this table.
-
-
- [7. phpMyAdmin project]
-
- [7.1] I have found a bug. How do I inform developers?
-
- Our Bug Tracker is located at http://sourceforge.net/projects/phpmyadmin/ under
- the Bugs section.
-
- But please first discuss your bug with other users:
- http://sourceforge.net/projects/phpmyadmin/ (and choose Forums)
-
- [7.2] I want to translate the messages to a new language or upgrade an existing
- language, where do I start?
-
- Always use the current CVS version of your language file. For a new language,
- start from english-iso-8859-1.inc.php. If you don't know how to get the CVS
- version, please ask one of the developers.
- Please note that we try not to use HTML entities like é in the
- translations, since we define the right character set in the file. With HTML
- entities, the text on JavaScript messages would not display correctly. However
- there are some entities that need to be there, for quotes ,non-breakable
- spaces, ampersands, less than, greater than.
- You can then put your translations, as a zip file to avoid losing special
- characters, on the sourceforge.net translation tracker.
- It would be a good idea to subscribe to the phpmyadmin-translators mailing
- list, because this is where we ask for translations of new messages.
-
- [7.3] I would like to help out with the development of phpMyAdmin. How should I
- proceed?
-
- The following method is preferred for new developers:
-
- 1. fetch the current CVS tree over anonymous CVS:
- cvs -d:pserver:anonymous@phpmyadmin.cvs.sourceforge.net:/cvsroot/phpmyadmin
- login
- [Password: simply press the Enter key]
- cvs -z3 -d:pserver:anonymous@phpmyadmin.cvs.sourceforge.net:/cvsroot/
- phpmyadmin checkout phpMyAdmin
- [This will create a new sub-directory named phpMyAdmin]
- 2. add your stuff
- 3. put the modified files (tar'ed and gzip'ed) inside the patch tracker of the
- phpMyAdmin SourceForge account.
-
- Write access to the CVS tree is granted only to experienced developers who have
- already contributed something useful to phpMyAdmin.
- Also, have a look at the Developers section.
-
-
- [8. Security ]
-
- [8.1] Security alert, dated 2003-06-18.
-
- Last update of this FAQ: 2003-07-22.
-
- The phpMyAdmin development team received notice of this security alert: http://
- www.securityfocus.com/archive/1/325641.
-
- The team regrets that the author did not communicate with us before sending
- this alert. However, here is our current reply to the points mentioned:
-
- * "Directory transversal attack"
-
- This problem had been fixed in version 2.5.0, even if the author reports
- the 2.5.2 development version as vulnerable, which we could not reproduce.
-
- * "Remote local file retrieving"
-
- This is a misleading title, as the author tells in his text: "Note that you
- can't request files ( only dirs )".
-
- * "Remote internal directory listing"
-
- It was possible to retrieve the list of phpMyAdmin's directory (which we
- doubt can cause any damage), but we fixed this in the 2.5.2 version.
-
- * "XSS and Path disclosures"
-
- Most of the XSS problems have been fixed in version 2.5.0. The rest have
- been fixed in the 2.5.2 version.
-
- We believe that the Path disclosures problems have also been fixed in
- version 2.5.2.
-
- * "Information encoding weakness"
-
- We believe that an exploit for this weakness would be difficult to achieve.
- However version 2.5.2 now encrypts the password with the well-known
- blowfish algorithm.
-
-
- [8.2] Security alert, dated 2004-06-29.
-
- Last update of this FAQ: 2004-06-30.
-
- The phpMyAdmin development team received notice of this security alert: http://
- securityfocus.com/archive/1/367486/2004-06-26/2004-07-02/0
-
- We would like to put emphasis on the disappointment we feel when a bugreporter
- does not contact the authors of a software first, before posting any exploits.
- The common way to report this, is to give the developers a reasonable amount of
- time to respond to an exploit before it is made public.
-
- We acknowledge that phpMyAdmin versions 2.5.1 to 2.5.7 are vulnerable to this
- problem, if each of the following conditions are met:
-
- * The Web server hosting phpMyAdmin is not running in safe mode.
- * In config.inc.php, $cfg['LeftFrameLight'] is set to FALSE (the default
- value of this parameter is TRUE).
- * There is no firewall blocking requests from the Web server to the attacking
- host.
-
-
- Version 2.5.7-pl1 was released with a fix for this vulnerability.
-
- [8.3] About new security alerts
-
- Please refer to http://www.phpmyadmin.net for the complete list of security
- alerts.
-
-
- Developers Information
-
- phpMyAdmin is Open Source, so you're invited to contribute to it. Many great
- features have been written by other people and you too can help to make
- phpMyAdmin a useful tool.
-
- If you're planning to contribute source, please read the following information:
-
- * All files include libraries/header.inc.php (layout),. libraries/
- common.lib.php (common functions) and config.inc.php.
- Only configuration data should go in config.inc.php. Please keep it free
- from other code.
- Commonly used functions should be added to libraries/common.lib.php and
- more specific ones may be added within a library stored into the libraries
- sub-directory.
- * Obviously, you're free to use whatever coding style you want. But please
- try to keep your code as simple as possible: beginners are using phpMyAdmin
- as an example application.
- As far as possible, we want the scripts to be XHTML1.0 and CSS2 compliant
- on one hand, they fit the PEAR coding standards on the other hand. Please
- pay attention to this.
- * Please try to keep up the file-naming conventions. Table-related stuff goes
- to tbl_*.php, db-related code to db_*.php, server-related tools to
- server_*.php and so on.
- * Please don't use verbose strings in your code, instead add the string (at
- least) to english-iso-8859-1.inc.php and print() it out.
- * If you want to be really helpful, write an entry for the ChangeLog.
- * The DBG extension (PHP Debugger DBG) is now supported by phpMyAdmin for
- developers to better debug and profile their code.
- Please see the $cfg['DBG']* configuration options for more information.
- This is in memoriam of the Space Shuttle Columbia (STS-107) which was lost
- during its re-entry into Earth's atmosphere and in memory of the brave men
- and women who gave their lives for the people of Earth.
-
-
- Credits
-
-
- phpMyAdmin - Credits
- ====================
-
- CREDITS, in chronological order
- -------------------------------
-
- - Tobias Ratschiller <tobias_at_ratschiller.com>
- * creator of the phpmyadmin project
- * maintainer from 1998 to summer 2000
-
- - Marc Delisle <Marc.Delisle_at_cegepsherbrooke.qc.ca>
- * multi-language version
- * various fixes and improvements
- * SQL analyser (most of it)
- * current project maintainer
-
- - Olivier Mu:ller <om_at_omnis.ch>
- * started SourceForge phpMyAdmin project in March 2001
- * sync'ed different existing CVS trees with new features and bugfixes
- * multi-language improvements, dynamic language selection
- * current project maintainer
- * many bugfixes and improvements
-
- - Loi:c Chapeaux <lolo_at_phpheaven.net>
- * rewrote and optimized javascript, DHTML and DOM stuff
- * rewrote the scripts so they fit the PEAR coding standards and
- generate XHTML1.0 and CSS2 compliant codes
- * improved the language detection system
- * many bugfixes and improvements
-
- - Robin Johnson <robbat2_at_users.sourceforge.net>
- * database maintenance controls
- * table type code
- * Host authentication IP Allow/Deny
- * DB-based configuration (Not completed)
- * SQL parser and pretty-printer
- * SQL validator
- * many bugfixes and improvements
-
- - Armel Fauveau <armel.fauveau_at_globalis-ms.com>
- * bookmarks feature
- * multiple dump feature
- * gzip dump feature
- * zip dump feature
-
- - Geert Lund <glund_at_silversoft.dk>
- * various fixes
- * moderator of the phpMyAdmin former users forum at phpwizard.net
-
- - Korakot Chaovavanich <korakot_at_iname.com>
- * "insert as new row" feature
-
- - Pete Kelly <webmaster_at_trafficg.com>
- * rewrote and fix dump code
- * bugfixes
-
- - Steve Alberty <alberty_at_neptunlabs.de>
- * rewrote dump code for PHP4
- * mySQL table statistics
- * bugfixes
-
- - Benjamin Gandon <gandon_at_isia.cma.fr>
- * main author of the version 2.1.0.1
- * bugfixes
-
- - Alexander M. Turek <me_at_derrabus.de>
- * MySQL 4.0 / 4.1 / 5.0 compatibility
- * abstract database interface (PMA_DBI) with MySQLi support
- * privileges administration
- * XML exports
- * various features and fixes
- * German language file updates
-
- - Mike Beck <mike.beck_at_web.de>
- * automatic joins in QBE
- * links column in printview
- * Relation view
-
- - Michal ?iha? <michal_at_cihar.com>
- * enhanced index creation/display feature
- * feature to use a different charset for HTML than for MySQL
- * improvements of export feature
- * various features and fixes
- * Czech language file updates
-
- - Christophe Gesche' from the "MySQL Form Generator for PHPMyAdmin"
- (http://sourceforge.net/projects/phpmysqlformgen/)
- * suggested the patch for multiple table printviews
-
- - Garvin Hicking <me_at_supergarv.de>
- * built the patch for vertical display of table rows
- * built the Javascript based Query window + SQL history
- * Improvement of column/db comments
- * (MIME)-Transformations for columns
- * Use custom alias names for Databases in left frame
- * hierarchical/nested table display
- * PDF-scratchboard for WYSIWYG-distribution of PDF relations
- * new icon sets
- * vertical display of column properties page
- * some bugfixes, features, support, German language additions
-
- - Yukihiro Kawada <kawada_at_den.fujifilm.co.jp>
- * japanese kanji encoding conversion feature
-
- - Piotr Roszatycki <d3xter_at_users.sourceforge.net> and Dan Wilson
- * the Cookie authentication mode
-
- - Axel Sander <n8falke_at_users.sourceforge.net>
- * table relation-links feature
-
- - Maxime Delorme <delorme.maxime_at_free.fr>
- * PDF schema output, thanks also to Olivier Plathey for the
- "FPDF" library (see http://www.fpdf.org/) and Steven Wittens
- for the "UFPDF" library (see http://www.acko.net/node/56).
-
- - Olof Edlund <olof.edlund_at_upright.se>
- * SQL validator server
-
- - Ivan R. Lanin <ivanlanin_at_users.sourceforge.net>
- * phpMyAdmin logo (until June 2004)
-
- - Mike Cochrane <mike_at_graftonhall.co.nz>
- * blowfish library from the Horde project
-
- - Marcel Tschopp <ne0x_at_users.sourceforge.net>
- * mysqli support
- * many bugfixes and improvements
-
- - Michael Keck <mkkeck_at_users.sourceforge.net>
- * redesign for 2.6.0
- * phpMyAdmin sailboat logo (June 2004)
-
- - Mathias Landha:usser
- * Representation at conferences
-
- - Sebastian Mendel <cybot_tm_at_users.sourceforge.net>
- * interface improvements
- * various bugfixes
-
- And also to the following people who have contributed minor changes,
- enhancements, bugfixes or support for a new language since version 2.1.0:
-
- Bora Alioglu, Ricardo ?, Sven-Erik Andersen, Alessandro Astarita,
- Pe'ter Bakondy, Borges Botelho, Olivier Bussier, Neil Darlow,
- Mats Engstrom, Ian Davidson, Laurent Dhima, Kristof Hamann, Thomas Kla:ger,
- Lubos Klokner, Martin Marconcini, Girish Nair, David Nordenberg, Andreas Pauley,
- Bernard M. Piller, Laurent Haas, "Sakamoto", Yuval Sarna,
- www.securereality.com.au, Alexis Soulard, Alvar Soome, Siu Sun, Peter Svec,
- Michael Tacelosky, Rachim Tamsjadi, Kositer Uros,
- Lui's V., Martijn W. van der Lee,
- Algis Vainauskas, Daniel Villanueva, Vinay, Ignacio Vazquez-Abrams, Chee Wai,
- Jakub Wilk, Thomas Michael Winningham, Vilius Zigmantas, "Manuzhai".
-
-
- Original Credits of Version 2.1.0
- ---------------------------------
-
- This work is based on Peter Kuppelwieser's MySQL-Webadmin. It was his idea
- to create a web-based interface to MySQL using PHP3. Although I have not
- used any of his source-code, there are some concepts I've borrowed from
- him. phpMyAdmin was created because Peter told me he wasn't going to
- further develop his (great) tool.
- Thanks go to
- - Amalesh Kempf <ak-lsml_at_living-source.com> who contributed the
- code for the check when dropping a table or database. He also suggested
- that you should be able to specify the primary key on tbl_create.php3. To
- version 1.1.1 he contributed the ldi_*.php3-set (Import text-files) as
- well as a bug-report. Plus many smaller improvements.
- - Jan Legenhausen <jan_at_nrw.net>: He made many of the changes that
- were introduced in 1.3.0 (including quite significant ones like the
- authentication). For 1.4.1 he enhanced the table-dump feature. Plus
- bug-fixes and help.
- - Marc Delisle <DelislMa_at_CollegeSherbrooke.qc.ca> made phpMyAdmin
- language-independent by outsourcing the strings to a separate file. He
- also contributed the French translation.
- - Alexandr Bravo <abravo_at_hq.admiral.ru> who contributed
- tbl_select.php3, a feature to display only some fields from a table.
- - Chris Jackson <chrisj_at_ctel.net> added support for MySQL
- functions in tbl_change.php3. He also added the
- "Query by Example" feature in 2.0.
- - Dave Walton <walton_at_nordicdms.com> added support for multiple
- servers and is a regular contributor for bug-fixes.
- - Gabriel Ash <ga244_at_is8.nyu.edu> contributed the random access
- features for 2.0.6.
- The following people have contributed minor changes, enhancements, bugfixes
- or support for a new language:
- Jim Kraai, Jordi Bruguera, Miquel Obrador, Geert Lund, Thomas Kleemann,
- Alexander Leidinger, Kiko Albiol, Daniel C. Chao, Pavel Piankov,
- Sascha Kettler, Joe Pruett, Renato Lins, Mark Kronsbein, Jannis Hermanns,
- G. Wieggers.
-
- And thanks to everyone else who sent me email with suggestions, bug-reports
- and or just some feedback.
-
-
- Valid XHTML 1.0! Valid CSS!
-
-